簡體   English   中英

打印大於兩個字段的行

[英]Print Lines That Are Greater Than Two Fields

我對grep ,但我知道awk在這種情況下可能更有效。 我正在學習,但還沒有到那里。

我有一些數據:

record1,14.2,10,50
record2,10.7,5,-
record3,9.3,6.8,10
record4,8,2.7,10
record5,5.5,22.4,10
record6,3,23.6,55
record7,2.7,14.6,-

我只想打印字段 3 中大於 7 且字段 4 中大於 10(同時刪除任何破折號)的行。因此,輸出將是這樣的:

record1,14.2,10,50
record6,3,23.6,55

我已經嘗試過使用awk '{print $3 > 7}' ,但是,就像我說的,我對awk和條件並不擅長。 我可以用 grep 做到這一點,但我覺得這效率低下。 任何幫助是極大的贊賞。

awk 腳本的結構是condition { action } 默認操作是{ print } ,它打印整個記錄。

  • 您的條件是$3 > 7$4 > 10
  • 您的字段分隔符是逗號。

結合這些我們得到:

awk -F, '$3 > 7 && $4 > 10' file

暫無
暫無

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

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