制作了一个file.csv。有3行。
"ip","count","filename"
"1.1.1.1","57","somefilename1"
"2.2.2.2","30","2somefilename-2"
尝试以3美元的价格购买,因此它应该只列出第3列。
我尝试了几种方法:
awk '{print $3}' filename.csv
输出是空白的,我只期待第3列
尝试:
awk' {print $ 1}' filename.csv
显示完整文档而不是第1列,没有任何内容被过滤。
我搜索了stackoverflow并尝试了其他一些方法。但出于某种原因,我要么得到完整的行,要么没有。
我错过的内容听起来很简单
答案 0 :(得分:2)
您应该使用-F作为“field-separator”,您可以在awk的手册页中找到它,如下所示:
awk -F, '{print $3}' Input_file
”filename”
”somefilename1”
”2somefilename-2”
答案 1 :(得分:1)
使用,
作为字段分隔符:
awk -F ',' '{print $3}' filename.csv
答案 2 :(得分:1)
以下awk
解决方案可能对您有帮助。
如果您想获得"
的输出,那么以下内容可能有所帮助:
awk -F, '{print $3}' Input_file
如果您需要没有"
的第3列的值,那么以下内容可以帮助您:
awk -F',|"' '{print $(NF-1)}' Input_file
答案 3 :(得分:1)
默认情况下,awk
使用空格作为字段分隔符,如需要将,
配置为字段分隔符的其他帖子中所述,否则整行将被视为一个字段。为此,您可以选择以下两种语法:
awk -F',' '{print $3}' input.csv #to avoid bad surprises with you shell trying to interpret your field separator put it between simple quotes.
或者您也可以在BEGIN子句中定义,或者在执行期间的任何时候使用以下语法定义:
awk 'BEGIN{FS=","}{print $3}' input.csv