출력에서 확장자를 제거하려면 이 "여러 파일 압축" 스크립트(mac os)를 어떻게 변경합니까?

출력에서 확장자를 제거하려면 이 "여러 파일 압축" 스크립트(mac os)를 어떻게 변경합니까?

이 스크립트를 사용하여 여러 파일을 개별 zip 파일로 압축합니다(자동화 서비스이므로 Bash).

for f in "$@"
do
zip -j "$f.zip" "$f"
done

완벽하게 작동하지만 zip 파일 이름에 확장자가 있습니다.

zipme.jpg는 zipme.jpg.zip으로 나타납니다.

내가 추구하는 결과는 다음과 같습니다. zipme.zip

확장자를 그대로 두고 마침표를 밑줄로 바꿀 수 있다면 더 좋을 것입니다: zipme_jpg.zip

많은 고객이 두 기간에 문제가 있습니다. 지금은 압축을 푼 후 손으로 제거합니다. 누구든지 스크립트를 수정하는 방법을 말해 줄 수 있나요?

답변1

Jpeg는 이미 압축되어 있으므로 zip으로 다시 압축할 필요가 없습니다. 그러나 매개변수 확장에서 하위 문자열 제거를 사용하여 확장을 제거할 수 있습니다.

for f in "$@"
do
zip -j "${f%.*}.zip" "$f"
done

${f%.*}파일 이름에서 확장자를 제거합니다 .

관련 정보