[ファイル仕様]
・データが入ってる
・区切り文字がタブ
・テキストファイル
[やりたい事]
ファイル中に下記のようなデータが含まれる 場合、""を\Nに置換したい。
※ \NはmysqlのLoad File時にNULLを表す
001 \t "" \t 100
[コード]
cat ${filename} | awk 'BEGIN { FS="\t"; OFS="\t" } { for (i = 1; i <= NF; ++i) if ($i == "" || $i == "0") $i="\\N" ; print $0 }' }'
[コード解説]
FS="\t" → 入力時の区切り文字をタブに
OFS="\t" → 出力時の区切り文字をタブに
NF → 現在レコードのフィールド数
$1,...,$NF → 第1フィールド,...,第NFフィールド
$0 → 現在の入力レコード(今回はcatで1行ずつ出力しているので1行すべて)
[結果]
001 \t "" \t 100 → 001 \t \N \t 100
パチパチ
[参考]
AWKのまとめ
awkもっとちゃんと使えるようになりたい!