마지막 4자를 제거하는 정규식

마지막 4자를 제거하는 정규식

.wav 파일을 .mp3 파일로 변환할 때 아래 한 줄 스크립트에서 정규식을 사용하여 마지막 4자를 제거할 수 있는 방법이 있습니까? 현재 내 한 줄 스크립트는 다음으로 끝나는 파일을 생성합니다..wav.mp3

for i in *.wav; do avconv -i "$i" "$i".mp3;done 

아래 출력을 생성합니다.

    Sanctify, Separate, & Success Success.wav.mp3
    There four types of love.wav.mp3
    Theres too much love to let you fail.wav.mp3

답변1

정규식을 원하지 않고 Bash를 사용하고 싶습니다.매개변수 확장전송 중인 파일 확장자를 제거하려면:

for i in *.wav; do avconv -i "$i" "${i%.*}".mp3; done

여기서는 "${i%.*}"다음의 패턴으로 확장됩니다.매개변수의 끝, 가장 짧은 일치 항목을 삭제한 후 everything( *) 에 의해 정의된 대로, 즉 ...wav

로 문자 그대로 대체할 수도 있습니다 "${i/.wav/.mp3}".

관련 정보