我有一个CSV文件,我想过滤第19列有两个或更多字符的所有行。我知道各个部分,但无法弄清楚如何将它们粘在一起。首先,我必须抓住文件。以下打印第19栏
awk -F "," '{print $19}' file.txt
awk也有长度和ifs
而且我知道这一切都必须用管子粘在一起。我只是陷入了确切的语法,因为我之前没有做过太多的bash编程。
答案 0 :(得分:8)
AWK
程序是一系列模式操作对,写为:
condition { action }
condition
部分是您的过滤器。
例如,要获取所有行(第19列至少有2个字符):
$ awk -F, 'length($19)>1' file.txt
缺少{action}
部分时,默认操作是打印记录。
答案 1 :(得分:1)
这应该有效:
awk -F ',' '{if (length($19) < 2) { print $0 }}' file.txt
如果第19个字段的长度小于2,则打印整行。