我有一个像这样的csv文件。
System.Xml.XmlTextReader reader = new System.Xml.XmlTextReader(@G:\Project\dictionary.xml");
我用Google搜索并找到了这个命令。
"cnt","phr"
"3679650","URL1"
"844588","URL2"
"572854","URL3"
"469274","URL4"
我得到了这个结果
awk -F "\"*,\"*" '{print $2}' test.csv
我如何得到?
URL1"
URL2"
URL3"
URL4"
我正在使用OSX
答案 0 :(得分:3)
您可以将此awk命令与字段分隔符一起用作逗号或双引号:
awk -F '[",]+' 'NR>1{print $3}' file.csv
URL1
URL2
URL3
URL4
或者使用逗号作为字段分隔符的gsub
awk -F, 'NR>1{gsub(/"/, ""); print $2}' file.csv
URL1
URL2
URL3
URL4
答案 1 :(得分:1)
替代awk
$ tr -d '"' <file | cut -d, -f2 | sed 1d
URL1
URL2
URL3
URL4
说明:删除引号,使用逗号分隔符选择第二个字段,删除第一行
答案 2 :(得分:1)
您获得该报价的原因是因为它不是您的字段分隔符。您定义的FS包含逗号。
有一些复杂的正则表达式可以将awk用于CSV数据,但我通常建议使用适当的CSV解析器来解析CSV数据。 Ruby有一个易于使用的方法:
ruby -rcsv -e 'CSV.foreach(ARGV.shift) {|row| puts row[1]}' file
输出
phr
URL1
URL2
URL3
URL4