特定の条件が満たされると、ファイルを繰り返し移動します。

特定の条件が満たされると、ファイルを繰り返し移動します。

次のディレクトリツリーがあります。

records/13/2014.12.16/00/05.mpg
records/13/2014.12.16/00/15.mpg
records/13/2014.12.16/01/05.mpg
records/13/2014.12.16/02/15.mpg
records/15/2014.12.14/05/25.mpg
etc.

*5.mpg名前に含まれるすべてのファイルの名前を変更する必要があります*0.mpg。たとえば、次のようになります。

mv records/13/2014.12.16/00/05.mpg records/13/2014.12.16/00/00.mpg
mv records/13/2014.12.16/00/15.mpg records/13/2014.12.16/00/10.mpg
mv records/15/2014.12.14/05/25.mpg records/15/2014.12.14/05/20.mpg
etc.

これを行うには、bashスクリプトを書く必要があることを知っています。残念ながら、私はうまくいかず、助けを求めることになりました。すべてのディレクトリ(再帰部分)に移動し、名前に*5.mpg

ベストアンサー1

すべてのファイルを繰り返して*.5mpg、パラメータ拡張の助けを借りてファイル名を変更してください。

for file in *5.mpg; do mv -- "$file" "${file%5.mpg}"0.mpg; done

他のディレクトリに対してこれを行うには、globstarオプション(shopt -s globstarbash内)を設定し、さらにコマンドを使用してパスコンポーネントをインポートするか、dirnameパラメータ拡張を再利用します。

おすすめ記事