可能的重复:
有没有强大的命令行工具来处理 csv 文件?
我正在尝试解析文件中的第二行(其中包含双引号内的逗号)
“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,,新,,,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
?另外我怎样才能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"
5美元的价值?
答案1
这不是awk
非常擅长的事情,请尝试使用perl
:
head -n 2 file.csv |
tail -n 1 |
perl -lne '@a = /((?:".*?"|.)*?)(?:,|$)/g; print $a[0]'