重複の可能性:
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
awk
getを"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]'