質問するログイン新規登録

回答編集履歴

1

コード修正

2020/04/28 05:23

投稿

退会済みユーザー
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/ {system("mv " $0 " XXXX" bushoMap[$2] substr($1,2) ".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になってしまいませんか?