フィールドセパレータ

CSV形式(RFC4180形式)のファイルから特定のフィールドを抽出しようとして以下のコマンドを実行した。

gawk -F, "{print $2;}" list.csv >field2.txt

ところがこれでは場合によって別のフィールドが抽出されている場合があった。それと言うのも、フィールドの中で通常の文字として使われているカンマがセパレータと認識されてしまっていたのだ。そのカンマはエスケープされていたものの、上述のように単純にセパレータを指定しただけではエスケープなど認識されない。
もちろん、エスケープを認識するようなスクリプトを書いても大した長さにはならないが、セパレータの指定の仕方だけで解決するような単純な方法はないものか。awkの操作対象は明かにCSVが主なんだからそれ専用のオプションがあってもいいくらいだと思った。
Document ID: 4ac86df6a69bc8764b7523e15d996fb8