ファイル名から文字とスペースの最後の文字の組み合わせを削除する方法

ファイル名から文字とスペースの最後の文字の組み合わせを削除する方法

端末では、ファイル名の末尾にスペースと数字の組み合わせを含むフォルダ内のすべてのファイル名を変更してみました。ファイル名の末尾にはスペースと数字の組み合わせ(例: "12334")が含まれており、.mp3の前にある数字とスペースの両方を削除する必要があります。

たとえば、

  • filename 1234567.mp3
  • my file 123.mp3
  • your file 98.mp3

名前変更:

  • filename.mp3
  • my file.mp3
  • your file.mp3

ベストアンサー1

強く打つ

$ touch 'filename 1234567.mp3' 'my file 123.mp3' 'your file 98.mp3' 1234.mp3 zzz.mp3

$ for f in *.mp3; do
    g=${f%%[[:space:]]+([[:digit:]]).mp3}
    if [[ $f != $g ]]; then
        mv -v -- "$f" "$g.mp3"
    fi
done
renamed 'filename 1234567.mp3' -> 'filename.mp3'
renamed 'my file 123.mp3' -> 'my file.mp3'
renamed 'your file 98.mp3' -> 'your file.mp3'

$ ls
1234.mp3   filename.mp3  'my file.mp3'  'your file.mp3'   zzz.mp3

これはbashを使用します延長する模様ファイル名の末尾の空白と1つ以上の数字、その後に「.mp3」が続くものと一致させます。

おすすめ記事