我有一个包含4列的CSV文件。我想先:
我的方法是将第一个awk命令传递给另一个,但我没有得到我想要的:
awk 'NR < 10' my_file.csv | awk '{ print $3 }'
答案 0 :(得分:0)
唯一缺少的是-F。
awk -F "," 'NR < 10' my_file.csv | awk -F "," '{ print $3 }'
答案 1 :(得分:0)
你不需要两次运行awk。
awk -F, 'NR<=10{print $3}'
这将为记录号(行)小于或等于10的每一行打印第三个字段。
请注意,<
与<=
不同。前者匹配记录1到9,后者匹配记录1到10。如果您需要十条记录,请使用后者。
请注意,这将遍历整个文件,因此如果您想优化效果:
awk -F, '{print $3} NR>10{exit}'
这将打印第三列。然后,如果记录号大于10,它将退出。 不会逐步浏览整个文件。
另请注意,awk&#34; CSV&#34;匹配很简单; awk不理解引用的字段,所以记录:
red,"orange,yellow",green
有四个字段,其中两个字段中有双引号。 YMMV取决于您的输入。