祝大家新年快乐。
我有一个看起来像这样的文件(例子):没有标题,这个文件有大约10000个这样的行
123 345 676 58 1
464 222 0 0 1
555 22 888 555 1
777 333 676 0 1
555 444 0 58 1
问题:我只想要那些字段3和4都具有非零值的行,即在上面的例子中第1行和第1行。应包括第3行,并应排除休息。我怎样才能做到这一点?
输出应如下所示:
123 345 676 58 1
555 22 888 555 1
感谢。
答案 0 :(得分:1)
awk
非常适合这种事情:
awk '$3 && $4' input.txt
这将为您提供所需的输出。
$3 && $4
是一个过滤器。 $3
是第3个字段的值,$4
是第4个字段的值。 0值将评估为false
,其他任何值都将评估为true
。如果可能存在负值,则需要更精确地编写:
awk '$3 > 0 && $4 > 0' input.txt