2008年10月20日月曜日

gawkでリネーム

ファイル名の途中の文字列だけを変更したかったので。
$ ls -1
ABBB20081019.csv
ACCC20081019.csv
ADDD20081019.csv
AEEE20081019.csv
AFFF20081019.csv
$ ls -1 *.csv | gawk '{ fn = gensub(/(^A[A-Z]*)(20081019)(\.csv)/,"\\120081020\\3","g"); printf("mv %s %s\n", $0, fn);}'
mv ABBB20081019.csv ABBB20081020.csv
mv ACCC20081019.csv ACCC20081020.csv
mv ADDD20081019.csv ADDD20081020.csv
mv AEEE20081019.csv AEEE20081020.csv
mv AFFF20081019.csv AFFF20081020.csv
$ ls -1 *.csv | gawk '{ fn = gensub(/(^A[A-Z]*)(20081019)(\.csv)/,"\\120081020\\3","g"); printf("mv %s %s\n", $0, fn) | "sh";}END{ close("sh")}'
$ ls -1
ABBB20081020.csv
ACCC20081020.csv
ADDD20081020.csv
AEEE20081020.csv
AFFF20081020.csv

0 件のコメント: