awkを使用してcsvを解析します。

awkを使用してcsvを解析します。

重複の可能性:
csvファイルを処理する強力なコマンドラインツールはありますか?

ファイルの2行目(二重引用符内にコンマが含まれている)を解析しようとしています。

"100ワットA19 10,000時間 - 透明電球", American-Light-Bulb-Mfg, 552, インテリア生活 > 家庭用家具 > 照明 > 電球、" 製品コード: H20821 使用されるエネルギー: 100ワット定格寿命: 10,000時間電圧: 130ベース:E26 - 中ねじ(標準家庭用ベース)長さ:4.45 "直径:2.375"電球タイプ:A19"、1.75、はい、http://www.buylighting.com/ProductDetails.asp?ProductCode=H20821&click=104182,http://www.buylighting.com/v/vspfiles/photos/H20821-2T.jpg,,new,,,0.1,H20821 ,,,,,,,,,,,,,,,,,,,,,,,,,.25、もちろんです。,,,,,,,,

head -2 file.csv | tail -1 | awk -F',' '{print $1}'

ただし、次のように出力されます。

"100 Watt A19 10

awkgetを"100 Watt A19 10,000 Hour - Clear Light Bulb"値としてどのように使用しますか$1?また、5ドルの価値をどのようにawk得ることができますか?"Product Code: H20821 Energy Used: 100 Watts Rated Life: 10,000 Hours Volts: 130 Base: E26 - Medium Screw (standard household base) Length: 4.45 Inches Diameter: 2.375 Inches Bulb Type: A19"

ベストアンサー1

awkこれはあまり良い機能ではありませんperl。以下を試してください。

head -n 2 file.csv |
  tail -n 1 |
  perl -lne '@a = /((?:".*?"|.)*?)(?:,|$)/g; print $a[0]'

おすすめ記事