![여러 파일 이름에서 숫자 접두사를 제거하는 방법은 무엇입니까?](https://linux55.com/image/126790/%EC%97%AC%EB%9F%AC%20%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%EC%97%90%EC%84%9C%20%EC%88%AB%EC%9E%90%20%EC%A0%91%EB%91%90%EC%82%AC%EB%A5%BC%20%EC%A0%9C%EA%B1%B0%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
다음 이름을 가진 파일이 2000개 이상 있습니다.
123-FILENAME_TEXT_M101K_20150929.CSV
123
3자리 또는 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