내 모바일 스크린샷의 이름을 다음으로 바꾸고 싶습니다
Screenshot_2020-08-06-16-13-43-731_com.tclhz.gallery.jpg
.2020-08-06.jpg
파일 이름의 고정 부분에 대해 첫 번째 문자 N개와 마지막 문자 N개를 제거할 수 있도록 일반화하고 싶습니다.
우리는 그것에 대해 무엇을 할 수 있나요?
감사해요!
답변1
당신은 그것을 사용할 수 있습니다쉘 문자열 조작기능. 파일 이름이 변수에 저장되어 있다고 가정하면 name
다음 두 줄은 첫 번째 밑줄 앞의 모든 항목을 제거한 다음 -hh-mm-ss
해당 부분으로 시작하는 모든 항목을 제거합니다. 그런 다음 파일 확장자를 수동으로 다시 추가하십시오.
newname="${name#*_}"
newname="${newname%-??-??-??-*}.jpg"
그런 다음 명령을 실행할 수 있습니다
mv "$name" "$newname"
파일 이름을 바꿉니다.
예:
$ name="Screenshot_2020-08-06-16-13-43-731_com.tclhz.gallery.jpg"
$ newname="${name#*_}"; newname="${newname%-??-??-??-*}.jpg"; echo "$newname"
2020-08-06-16.jpg
현재 디렉토리의 전체 내용을 처리하려면 다음을 수행하십시오.
for name in *.jpg
do
newname="${name#*_}"
newname="${newname%-??-??-??-*}.jpg"
mv "$name" "$newname"
done