回答編集履歴
1
コード修正
answer
CHANGED
@@ -8,20 +8,14 @@
|
|
8
8
|
bushoMap["somu"] = "01";
|
9
9
|
bushoMap["keiri"] = "02";
|
10
10
|
}
|
11
|
-
length($1) >= 2 && $2 in bushoMap && $3 ~ /[0-9]{8}.csv/ {
|
11
|
+
length($1) >= 2 && $2 in bushoMap && $3 ~ /[0-9]{8}.csv/ {print "mv " $0 " XXXX" bushoMap[$2] substr($1,2) ".csv"}
|
12
12
|
```
|
13
13
|
|
14
14
|
次にファイル名を引き渡すとmvしてくれます。
|
15
15
|
```
|
16
|
-
ls *.csv | ./rename.awk
|
16
|
+
ls *.csv | ./rename.awk | sh
|
17
17
|
```
|
18
18
|
|
19
19
|
一応AA_busho_NNNNNNNN.csvと言うファイル名の形式とbushoが既知かどうかチェックしていますが、実戦で使うにはもうちょっとエラーチェックが必要かもしれません。
|
20
20
|
|
21
|
-
awkの中でsystem()の代わりにprintして、現在のファイル名と新ファイル名の対応表を作ってそちらを読み込む方がいいかもしれません。裏では次のようなコマンドが実行されています
|
22
|
-
|
23
|
-
```
|
24
|
-
mv AAA_keiri_20200401.csv XXXX02AA.csv
|
25
|
-
```
|
26
|
-
|
27
21
|
ところで本当に日付は削っていいのですか?もしBBB_keiri_20200401.csvとBBB_keiri_20200402.csvがあったら両者ともXXXX02BB.csvになってしまいませんか?
|