.flac
개의 파일이 들어있는 여러 하위 디렉토리가있는 디렉토리가 있습니다. 일괄 처리를 .mp3
(으)로 변환하고 싶습니다. 경로 이름에는 공백이 포함됩니다. 지금이여러 디렉토리에서 파일을 일괄 처리
find . -type f -regex .*.flac -exec ffmpeg -i {} -c:a mp3 -b:a 320k \;
같은 것을하고 싶어하지만 문제는, 어떻게 출력 파일 이름을 FFmpeg를 제공하기 위해 mp3
에 대한 {}
및 대체 flac
를 사용할 수 있습니까? bash에서는 변수 대체 ${file%.flac}.mp3
을 사용할 수 있지만 여기서는 적용 할 수 없습니다. sed
기반의 접근 방식은 find
과 작동하지 않습니다. 간단한 해결책이 있습니까?
shopt -s globstar nullglob
for file in **/*.flac; do
[[ -f $file ]] || continue
out_file=${file%.flac}.mp3
ffmpeg # your options here, using "$out_file"
done
체크 [[ -f $file ]]
이 .flac
에서 끝나는 디렉토리를 건너 뜁니다 : 당신이 떠들썩한 파티를 사용하는 경우
Btw. quote'* .flac'. – Cyrus