post by yamamoto | 0 | 942 views

awk で DPC EFファイルの先頭に年月を追加する

  • ある病院のDPC EFファイルの件数

$ wc -l EFn_000000000_14*.txt 
  380502 EFn_000000000_1404.txt
  390134 EFn_000000000_1405.txt
  423224 EFn_000000000_1406.txt
  450589 EFn_000000000_1407.txt
  429559 EFn_000000000_1408.txt
  412329 EFn_000000000_1409.txt
  435993 EFn_000000000_1410.txt
  391426 EFn_000000000_1411.txt
  403304 EFn_000000000_1412.txt
 3717060 total

  • 年月を先頭につけて、UTF-8に変換し、1つのファイルに出力する

awk '{print "20" substr(FILENAME,15,4) "\t" $0}' EFn_000000000_14* | nkf -x > DPC_EFn_201404-12.txt

【解説】ファイル名の年月はYYMMなので、先頭に"20"を追加します。年月YYMMはファイル名の15文字目から4文字をとります。TAB("\t")を挟んで元の行($0)とくっつけます。それから、パイプ | を通して nkf コマンドで 文字コードをUTF-8(-x)に変換してから、DPC_EFn_201404-12.txt というファイルに出力(>)します。

Comments are closed.