ここに示すように、パラメーター展開を使用した bash ファイル名の置換をテストしています: Linux シェル スクリプトでファイル拡張子を変更する方法は?
ただし、次のことを意図したとおりに機能させることができないようです。
次のファイルを指定します。
tmp/01. Losing A Whole Year.flac
tmp/02. Narcolepsy.flac
出力をテストするためのコマンドを実行するfind
ためにflacファイルをparallel
実行します。echo
に置き換えようとして.flac
い.mp3
ます。
find tmp -type f -name '*.flac' | time parallel -j+0 --eta 'echo "{} {.flac%%.mp3}"'
私の出力は次のとおりです。
tmp/01. Losing A Whole Year.flac {.flac%%.mp3}
tmp/02. Narcolepsy.flac {.flac%%.mp3}
ffmpeg
それが違いを生むなら、私はこれを使用する予定です。
編集:期待される出力:
tmp/01. Losing A Whole Year.flac tmp/01. Losing A Whole Year.mp3
tmp/02. Narcolepsy.flac tmp/02. Narcolepsy.mp3
編集 2: ファイル拡張子を置き換えるには、次を使用できます。
find tmp -type f -name '*.flac' | time parallel -j+0 --eta 'echo "{} {.flac%%.mp3}"'
ただし、これにより次の出力が得られます
tmp/01. Losing A Whole Year.flac tmp/01.\ Losing\ A\ Whole\ Year.mp3
tmp/02. Narcolepsy.flac tmp/02.\ Narcolepsy.mp3
\
スペース文字の代わりに文字がある場合、ffmpeg はファイルを見つけることができないため、これは現在 ffmpeg の質問である可能性があります。