簡體   English   中英

如何刪除bash(awk)中有2個條件的行

[英]How to delete a line in bash (awk) with 2 conditions

我有以下問題:我有一個文件,如:

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

即打印除第二列以外的所有行是1,第三列是0。

嘗試這個

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

干杯!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM