
多数のファイルのサフィックスを一括で置き換えるにはどうすればよいですか?
次のようなファイルがたくさんあります
NameSomthing-min.png
NameSomthing1-min.png
NameSomthing2-min.png
すべて変更したいのですが
NameSomthing.png
NameSomthing1.png
NameSomthing2.png
-min
つまり、名前から文字を削除します。どうすればいいでしょうか?
答え1
このスクリプトが役に立つかもしれません:
for file in *-min.png; do
echo mv "$file" "${file%-min.png}.png"
done
実際にコマンドを実行するには、echo を削除します。
答え2
それはシェルによって異なります。私は を使用しzsh
、次のように実行します。
for i in *-min.*; do mv $i "${i%-*}.${i#*.}"; done
シェルのマニュアルページをチェックして、「パラメータ拡張」(zsh
マニュアルページ)。
同様のソリューションはbash
、 および他のシェルでも利用できます (どのシェルを使用するかを指定していません)。
特定のソリューションは常にデータと目標によって異なることに注意してください。削除したい名前とサフィックスの間に「-」を区切り文字として使用している場合には、これが適切な方法です。そうでない場合は、パラメータ拡張を少し調整する必要があるかもしれません。