Bashを使用して複数のファイルの中間名を変更する

Bashを使用して複数のファイルの中間名を変更する

いくつかのファイルがありますが、/opt/rec/bashを使用していくつかのファイルの名前だけを変更したいと思います。

元のファイル名:

WK6LZTPR99999999_dig_2017-07-10 01:55:57.xy

このディレクトリのすべてのファイルを次に変更したいと思います。

WK6LZTPR99999999_cur_2017-07-10 01:55:57.mp3

答え1

bash解決策は次のとおりです。

for file in /path/to/*; do 
    nname="${file%%.*}.mp3"  # strip last part of file till first . seen
    echo mv "$file" "${nname//dig/cur}"  # replace 'dig' with 'cur'
done

それでmmvずっと簡単です。

mmv '*_*_*.*' '#1_cur_#3.mp3'

または以下を使用してzmv

zmv -w '*_*_*.*' '$1_cur_$3.mp3'

答え2

そして真珠 名前を変更する注文する:

rename 's/_dig_([^.]+)\.xy$/_cur_$1.mp3/' /opt/rec/*.xy

答え3

次の2つの手順で名前変更コマンドを使用できます。

cd /opt/rec/
rename -v "_dig_" "_cur_" *.xy
rename -v ".xy" ".mp3" *.xy

関連情報