
.m4a
オーディオファイルから不要な文字を削除するには、サブディレクトリの拡張子を使用してファイル名を繰り返し変更したいと思います。'
]。
04 Tears Don't Fall.m4a
これは、他のファイルがないと、ファイルに次のことが発生するためです。
2005-09-30 - Poison(Deluxe Edition) [US - 88697-09021-2 - 2007]/04 Tears Don't Fall.m4a ファイルを読み込めませんでした。サポートされているファイル形式ではない可能性がありますか? ffmpegを使用してロードしようとすると、次のエラーが発生します。FFmpegはファイルを読み取れません。
答え1
ffmpeg
一重引用符を含むファイル名を読むことは完全に可能であるため、操作に何か問題があるようです。
mkdir '2005-09-30 - The Poison (Deluxe Edition) [US - 88697-09021-2 - 2007]'
cp -p {another.m4a} "2005-09-30 - The Poison (Deluxe Edition) [US - 88697-09021-2 - 2007]/04 Tears Don't Fall.m4a"
ffmpeg -i "2005-09-30 - The Poison (Deluxe Edition) [US - 88697-09021-2 - 2007]/04 Tears Don't Fall.m4a"
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '2005-09-30 - The Poison (Deluxe Edition) [US - 88697-09021-2 - 2007]/04 Tears Don't Fall.m4a':
Metadata:
major_brand : M4A
minor_version : 0
compatible_brands: M4A mp42isom
...
たぶんあなたが正しく引用しなかったかもしれません。残念ながら、コードを見なくてもこれを確認する方法はなく、可能な問題としてマークするだけです。
ただし、文字セットを削除するためにファイル名を変更するには、次のコードを使用できます。
find . -type f -name '*.m4a' -exec \
sh -c 'for f in "$@"; do echo mv "$f" "${f'"//[\']/"'}"; done' _ {} +
echo
実行する準備ができたら削除してくださいmv
。
[\']
削除する追加の文字を含めるように範囲を拡張できます。たとえば、[\'\\\"\\\`:]
一重引用符、二重引用符、逆引用符、およびコロンを削除することを選択できます。 (一重引用符は接頭辞で始まり、\
二重引用符、バックティック、ドル記号は前に付ける必要があります\\\
。)
答え2
#!/bin/bash
shopt -s globstar
for fn in **/*\'*.m4a; do echo mv "$fn" "${fn/\'/}"; done
echo
実際に名前を変更する前に結果を確認する必要があります。
答え3
まず、$ 1を$ 1(( ')を除く)に移動するシェルスクリプトを作成し、それをSpecial_move.shと呼びます。ファイルに実行権限を付与することを忘れないでください。
#!/bin/bash
orgFile=$1
destFile=${orgFile//\'/}
echo "mv $orgFile $destFile"
#mv $orgFile $destFile
次に、ファイルが保存されているルートディレクトリに移動し、cmdと入力します。
find . -name "*'*.m4a" -exec /absolute/path/special_move.sh {} \;
十分にテストし、スクリプトファイルの最後の行のコメントを削除します。