我有以下问题:我有一个文件,如:
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'
有什么帮助吗?
你要:
awk '!( $2==1 && $3 == 0)' file
或者,等效地:
awk '$2 != 1 || $3' file
您正在寻找 的否定$2 == 1 && $3 == 0
。根据逻辑规则,那是
awk '$2 != 1 || $3 != 0'
这将确保:
awk '!($2==1 && $3==0){print}' file
即打印除第 2 列为 1 和第 3 列为 0 之外的所有行。
试试这个
awk '$2$3!="10"' file
干杯!