CSVファイル形式のデータは次のとおりです。
"Pizza,wings,icecream","hopper","0",,"Masdfasdf","USA","381","10 AM","cap",,,"monster"
以下に示すように、カンマを区切り文字として使用すると、カンマ付きのフィールドは区切り文字として計算されますが、これは私が望むものではありません。
cat /path/to/file | cut -d , -f2
戻ってくる
wings
欲しいとき
hopper
論理的な解決策を見つけたようですが、どのように実装するのかわかりません。
「別のカンマや引用符で囲まれたカンマであれば、私を区切り文字と見なします」という区切り文字をどのように作成しますか?
はい
[tksmith@rifle ~]$ cat deleteme
"Pizza,wings,icecream","hopper","0",,"Masdfasdf","USA","381","10 AM","cap",,,"monster"
[tksmith@rifle ~]$ cat deleteme | cut -d , -f2
wings
ベストアンサー1
CSV形式には再分析を望まないほど極端なケースが多い。正しいCSVパーサーを使用してください。例えば、ルビーを使うと
ruby -rcsv -e 'CSV.foreach(ARGV.shift) {|row| puts row[1]}' file