バッチ名の変更、サフィックスの変更? [コピー]

バッチ名の変更、サフィックスの変更? [コピー]

複数のファイルのサフィックスをまとめて置き換える方法は?

私は次のような多くのファイルを持っています

  • 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同様のソリューションが他のシェルでも機能します(使用するシェルを指定していません)。

特定のソリューションは、常にデータと目標によって異なります。名前とサフィックスの間の区切り文字「-」を削除するには、そうします。そうでない場合は、パラメータ拡張を少し調整する必要があります。

関連情報