[英]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.