2015年2月10日火曜日

awk で DPC データの匿名化

DPCデータの前処理はこちらの記事をご参照ください。
$ awk 'BEGIN {FS=OFS="\t"}  { cmd="echo salt"  $3 " | openssl dgst -sha256 | sed \"s/(stdin)= //\" "; while (cmd | getline var) print $1,$2,var,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32; close(cmd)}' DPC_EFn_201404-12.txt > DPC_EFn_201404-12_Crypt.txt 
【解説】
・BEGIN {FS=OFS="\t"} :入力フィールドセパレータFSと出力セパレータOFSをTABに指定する。
・cmd="echo salt $3 " | openssl dgst -sha256 | sed \"s/(stdin)= //\" " :フィールド3に対して塩をかけてsha256暗号化をするコマンド
・cmd | getline var :コマンド cmd の実行した結果を var に入れる。
・print $1,$2,var,$4,... :$3 だけを暗号化した文字列に入れ替える。
・close(cmd):cmd を閉じる
・DPC_EFn_201404-12.txt :入力ファイル
・> DPC_EFn_201404-12_Crypt.txt :出力ファイル

0 件のコメント:

コメントを投稿