여러 파일 이름에서 숫자 접두사를 제거하는 방법은 무엇입니까?

여러 파일 이름에서 숫자 접두사를 제거하는 방법은 무엇입니까?

다음 이름을 가진 파일이 2000개 이상 있습니다.

123-FILENAME_TEXT_M101K_20150929.CSV

1233자리 또는 4자리 숫자일 수 있습니다 . 이러한 파일은 모두 동일한 디렉터리에 있습니다. 접두사 번호와 대시를 제거하는 스크립트를 원합니다. (즉, 123-예시 이름에서 선행 부분을 제거해야 합니다)

나는 열심히 노력했다 mv **-FILENAME* FILENAME*. rename사용할 수 있는 기능이 아닙니다

답변1

다음과 같이 시도해 볼 수 있습니다. 첫 번째 항목 이전의 모든 항목이 삭제됩니다.-

for file in *-*.CSV
do
   newName="${file#*-}"
   mv -- "${file}" "${newName}"
done

답변2

나는 sed, awk 및 find의 조합을 사용해 보았습니다. 테스트를 거쳐 잘 작동함

find . -type f -iname "*.CSV"| sed "s/^\.\///g"| sed -n '/^[0-9]\{4\}/p' | awk   -F "-" '{print "mv" " " $0 " " $2}'| sh

관련 정보