簡體   English   中英

如何使用 AWK 或 SED 提取值大於數字的字段

[英]How to extract a field which has value greater than a number using AWK or SED

很抱歉提出這樣一個基本問題,但我花了幾個小時試圖解決這個問題! 如果每行的第 12 個字段的值大於或等於 x,我需要一個 awk 命令(或類似命令)來查看文本文件並輸出到屏幕。

在下面的示例中,我想獲得超過 950 毫秒的交易數

INFO [tomcat-http--25] 2020-02-21 12:33:55,292 - Tranasction task has exceeded 100ms @ 1102ms for [ unique_id1:9502, unique_id2:995351, Serialnumber:514534, Txnid:70828febbb1913 ]

來自gawk 文檔

要強制將字符串轉換為數字,請向該字符串添加零 通過將字符串的任何數字前綴解釋為數字,將字符串轉換為數字:“2.5”轉換為 2.5,“1e3”轉換為 1,000,而“25fix”的數值為 25。無法解釋的字符串作為有效數字轉換為零

所以最好的解決方案是:

awk -v ms=950 '$12+0>ms+0' your_file

-v ms=950 : 將一個名為ms的 var 傳遞給 awk 程序的主體

在@JuanDiegoGodoyRobles (++) 安全的地方,我大膽地選擇:

$ awk -v ms=950ms '$12+0 > ms+0' file

或者:

$ awk -v ms=666 '$12+0 > ms+0' file

輸出:

INFO [tomcat-http--25] 2020-02-21 12:33:55,292 - Tranasction task has exceeded 100ms @ 1102ms for [ unique_id1:9502, unique_id2:995351, Serialnumber:514534, Txnid:70828febbb1913 ]

暫無
暫無

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

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