3

我有以下问题:我有一个文件,如:

1 3 4
2 5 6
3 1 3
4 1 0
5 7 0
6 0 1

我想删除包含在第二列 1 和第三列中的数字 0 的行。所以结果应该是:

1 3 4
2 5 6
3 1 3
5 7 0
6 0 1

我试过:awk '$2!=1 && $3 != 0' file

但它也会删除以下行:'5 7 0' 和 '3 1 3'

有什么帮助吗?

4

4 回答 4

6

你要:

awk '!( $2==1 && $3 == 0)' file

或者,等效地:

awk '$2 != 1 || $3' file
于 2012-12-12T20:05:07.710 回答
3

您正在寻找 的否定$2 == 1 && $3 == 0。根据逻辑规则,那是

awk '$2 != 1 || $3 != 0'
于 2012-12-12T20:05:01.363 回答
2

这将确保:

 awk '!($2==1 && $3==0){print}' file

即打印除第 2 列为 1 和第 3 列为 0 之外的所有行。

于 2012-12-12T20:05:14.123 回答
0

试试这个

awk '$2$3!="10"' file

干杯!

于 2012-12-12T20:14:49.177 回答