【发布时间】:2018-07-08 23:03:09
【问题描述】:
制作了一个文件.csv。有 3 行。
"ip","count","filename"
"1.1.1.1","57","somefilename1"
"2.2.2.2","30","2somefilename-2"
试图以 3 美元的价格 awk,所以它应该只列出第 3 列。
我尝试了几种方法:
awk '{print $3}' filename.csv
输出为空白,我期待的只是第 3 列
试过了:
awk '{print $1}' 文件名.csv
显示完整文档而不仅仅是第一列,没有任何内容被过滤。
我搜索了 stackoverflow 并尝试了其他一些方法。但由于某种原因,我要么得到完整的行,要么什么都没有。
我缺少什么听起来很简单
【问题讨论】:
-
awk -v FS="," '{print $3}' filename.csv你需要告诉awk使用什么作为字段分隔符(FS)。默认情况下它的空白。 -
Awk 中的默认字段分隔符是一个空格序列。您缺少
awk -F,来使用逗号。投票结束是一个琐碎的错字。 -
您的输入文件有 unicode 引号(
”)而不是 ascii 引号("),您是否从 DOS 编辑器复制粘贴此文件? (windows - 记事本/记事本++) -
@chowpay 您可以将字符串用作
FS,但要小心。此外,找出答案的最佳方法是尝试。