如何在Linux shell中执行'where'子句?

时间:2012-03-24 08:38:36

标签: linux bash shell

我有一个CSV文件,我想过滤第19列有两个或更多字符的所有行。我知道各个部分,但无法弄清楚如何将它们粘在一起。首先,我必须抓住文件。以下打印第19栏

awk -F "," '{print $19}' file.txt 

awk也有长度和ifs

而且我知道这一切都必须用管子粘在一起。我只是陷入了确切的语法,因为我之前没有做过太多的bash编程。

2 个答案:

答案 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,则打印整行。