複数のファイルのサフィックスをまとめて置き換える方法は?
私は次のような多くのファイルを持っています
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
実際にコマンドを実行するには、エコーを削除します。
答え2
それはシェルによって異なります。私は使用しますがzsh
、これが私がする方法です:
for i in *-min.*; do mv $i "${i%-*}.${i#*.}"; done
シェルのマンページを見て、「パラメータの拡張」などのセクションを見てください。zsh
マニュアルページ)。
bash
同様のソリューションが他のシェルでも機能します(使用するシェルを指定していません)。
特定のソリューションは、常にデータと目標によって異なります。名前とサフィックスの間の区切り文字「-」を削除するには、そうします。そうでない場合は、パラメータ拡張を少し調整する必要があります。