同じフォルダにファイルをコピーし、名前の年を変更します。

同じフォルダにファイルをコピーし、名前の年を変更します。

同じディレクトリに多数のファイルをコピーし、名前の年を変更する方法は?

私はこれを持っています(ファイル名と拡張子が異なる場合があります)。

filename1-2014.ext
filename2-2014.ext
filename3-2014.ext
...
filenamen-2014.ext

私はこれが欲しい:

filename1-2014.ext
filename1-2015.ext
filename2-2014.ext
filename2-2015.ext
filename3-2014.ext
filename3-2015.ext
...
filenamen-2014.ext
filenamen-2015.ext

これを行うスクリプトを作成できますが、これを行う簡単な方法があるかどうか疑問に思います。

答え1

  • そして、次を見つけてください。

    find . -type f -name '*2014*' -exec bash -c 'cp "$0" "${0/2014/2015}"' {} \;
    
  • シェルループで:

    for file in *2014*; do
        cp "$file" "${file/2014/2015}"
    done
    

答え2

for i in *-2014.ext; do
  cp "$i" "${i%2014.ext}2015.ext"
done

各ファイルに対して古いサフィックスを削除し、新しいサフィックスを追加します。

他の拡張機能がある場合は、bashのパターン置換機能を使用できます。

for i in *-2014.*; do
  cp "$i" "${i/2014/2015}"
done

関連情報