記事タイトルの通り、共通のキーワードを持つファイルたちを一括でリネームしたい状況になった。
たとえば
- デザイナと image_yyyymmdd_{s,m,l}というファイル名でやり取りしてるが、最終的にはyyyymmddが不要とか、キーワードに置換するとか
- app.yyyymmdd.log の日付部分を消したいとか
bashには置換する変数展開がある
item="a findString." echo ${item/findString/replaceString} # a replaceString.
例に適用する
ls # image_yyyymmdd_s.jpg image_yyyymmdd_m.jpg image_yyyymmdd_l.jpg for item in $(ls) do mv -v $item ${item//yyyymmdd/00000000} done
ls # app.yyyymmdd.log debug.yyyymmdd.log error.yyyymmdd.log for item in $(ls) do mv -v $item ${item//.yyyymmdd/} done