Mac에서 파일 이름 자르기

Mac에서 파일 이름 자르기

다음과 같은 이름의 1000개 파일이 있는 디렉토리가 있습니다.

2019-07-21-17-50-06 - 123 - abc - xyz.zzz

날짜와 시간인 가장 왼쪽 19자만 필요합니다.

Mac에는 이름 바꾸기 명령이 없으므로 여기에서 mv 명령도 작동한다는 것을 알았습니다.파일 이름 자르기이것은 나에게 이것을 준다

for i in *.mp3; do mv "$i" "${i:19}"; done

그런데 왼쪽이 아닌 오른쪽에서 잘린 것 같아요.

가장 왼쪽 19자와 접미사를 유지하도록 이 명령을 어떻게 변경할 수 있습니까?

감사해요!

답변1

${i:19}19번째(음, 20번째 - 0 인덱싱 작동) 문자에서 시작하는 하위 문자열입니다. 처음부터 19자 부분 문자열은 입니다 ${i:0:19}.

모든 파일의 확장자 앞에 19자가 있는 경우:

for i in *; do mv "$i" "${i:0:19}.${i##*.}"; done

${i##*.}filename 의 마지막 항목까지 모든 항목을 제거하고 .확장자만 남깁니다.

Perl 이름 바꾸기는 Homebrew에서 사용할 수 있습니다.

% brew info rename
rename: stable 1.600 (bottled), HEAD
Perl-powered file rename script with many helpful built-ins
http://plasmasturm.org/code/rename

답변2

${i%% - *}첫 번째 발생부터 시작하여 모든 항목을 삭제할 수 있습니다 -.

관련 정보