Bashワイルドカード変数の置き換え? [コピー]

Bashワイルドカード変数の置き換え? [コピー]

重複の可能性:
バッチの名前変更ファイル

既存の名前に基づいて新しい名前を使用してファイルの名前を変更したいと思います。

lsしたがって、このファイルを使用できる場合

ls blue*+(.png)

名前を次に変更したいです。

mv blue$(*)+(.png) $(1).png

しかし、これは明らかに動作しません。 bash globbingにこれらの変数の構文がありますか、それとも簡単な方法がありますか?

ベストアンサー1

これを達成するポータブル方法は次のとおりです。

for f in blue*.png; do mv -- "$f" "${f#blue}"; done

mvこれはすべて必要であり、bashすべてのPOSIX互換シェルで実行できます。標準POSIXパラメータ拡張。システムにインストールされているzsh特定のバージョンがありませんrename

おすすめ記事