ディレクトリ内のファイル名を一括で変更する(AWK)
mod09gqk_mongol_2000056_ndvi.tifのような名前のファイルが大量にあったので、これをndvi_2000056.tifのように一括で変更する。
lsでリストした出力をパイプ"|"でつなぎ、awkで、$1に引き渡す。substr(A,B,C)は、変数Aを頭からB番目の文字をC個、抽出するという組み込み関数。
"mv" "ndvi_" ".tif"をprintで表示させる。
gawk '{print "mv",$1, "ndvi_"substr($1,17,7)".tif";}'
で、
mv mod09gqk_mongol_2000056_ndvi.tif ndvi_2000056.tif
のように書くことができるので、それをそのままパイプ"|"でつなぎshにひきわたすことで、実行される。
ls |gawk '{print "mv",$1, "ndvi_"substr($1,17,7)".tif";}' |sh