blochの日記

自虐ネタ以外のぐちは書かないようにしましょう

とても大きなCSVとawk(gawk)

gawk -F, "(NR>2)&&($6==1)&&($143==1) {print $122}" maruhi.csv | find /c /v ""
こんな感じで条件適合数を調べられる。ヘッダを除いて(3行目以降の指定)、第六項目と第143項目が「1」のサンプル数。
これでいつ、要請があっても対応できるぞ。
(メモ)区切り文字の指定は意外なことに -F, -F , -F "," いずれでもOKだった。意外。


問題は最後の欄に文章が入っていて、しょっちゅう、次のようなエラーが出るのが気持ち悪い。

gawk: (FILENAME=maruhi.csv FNR=221) fatal: print to "standard output" failed (Invalid argument)

221番目のデータの文章が長過ぎるのか、それともヘンな制御文字列でも入れたのか(あからさまには見えていない)。まあ、文章は既に別に抜き出して別のファイルになっているので心配することはない。