2015.10.25 Move on and Be Blessed.wav dummy.m4a
2015.11.17 BS Full.wav.mp3
2015.11.17 BS MOL.wav.mp3
find . -name '*.mp3' -o -name '*.wav' -o -name '*.m4a' -print0
しかし、このコマンドは機能します
find . -name "*.wav" -o -name '*.mp3' -print0
私は読んでいた find コマンドを使用して複数の拡張子を検索する方法そして neroAacEncを使用してサブディレクトリ内のすべての.wavファイルを.aacに変換するには?
私の正規表現バージョンが機能しないのはなぜですか?
find . -regex '*\.\(.mp3\|.wav\|.m4a\)' -print0
この正規表現コマンドを2番目の参照記事で説明されている後続のコマンドにパイプして、find . -name "*.wav" -print0 | while read -d $'\0' file; do ffmpeg -i "$file" -c:a libfdk_aac -vbr 3 output.m4a "${file%wav}m4a"; done
そのfind . -name "*.wav" -print0
コマンドを置き換えることはできますか?
ベストアンサー1
あなたの質問に始めが欠けているようですが、find-regexコマンドが機能しないのは、.*
(「何でも」のglob構文)だけでなく*
(「何でも」の正規表現構文)で始める必要があるからです。.
Extensionの前に不要なものがあります。
find . -regex '.*\.\(mp3\|wav\|m4a\)' -print0
パイプラインは正しく機能します。echo
それを前に配置してテストしてくださいffmpeg
。私の本能は、ファイルでテストできる関数やスクリプトを作成するか、ファイルに改行文字がないことを確認することです。スペースはユーザーが好きですが、改行は痛いです。