簡體   English   中英

awk刪除包含數據的行

[英]Awk delete line that contains data

我想刪除一行,如果它包含指定的值。

2 5 8
1 3 7
8 5 9

因此,如果我想刪除包含7作為第三個字段的行:

{
if($3 == 7){
####delete the line
}
}

應該說夠了

$ awk '$3 != 7'

請注意,這是一個數字比較,並將省略第三個字段所在的行,例如“0.7e1”,但它將適用於您提供的示例數據。

刪除包含7的行

awk '!/7/' yourFile

其他答案有效。 這就是原因

Awk的標准處理模型是讀取一行輸入,可選地匹配該行,如果匹配(可選)打印輸入。 其他解決方案使用否定匹配,因此除非進行匹配, 否則將打印行。

您的代碼示例不使用否定匹配:它表示“如果某些內容屬實,請執行此操作”。 因為您要刪除輸入,所以當您匹配該目標時,您可以跳過它。

{
  if($3 == 7){
     #skip printing this line
     next
  }
}

IHTH。

你可以這樣做:

awk '$3  /7/ {next} {print}'

暫無
暫無

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

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