我有xyz.rpt以下格式的報告
# ajsh askj sdjh 54 12
# jhgj 765 2839
kjsd sdh sdsdf sdffsdf sdff
5464 765 67 65 76
2356 423 34 45 34
等等
我還想列印前 2 個標題行以及 awk 命令的輸出。
awk '{if ( $5 < 65 ) print}' > aaa.rpt
uj5u.com熱心網友回復:
一個awk想法:
awk '
FNR<=2 # print 1st 2 lines
FNR>2 && $5 0==$5 && $5<65 # print lines where $5 is numeric and $5 < 65
' xyz.rpt
或作為單行:
awk 'FNR<=2; FNR>2 && $5 0==$5 && $5 < 65' xyz.rpt
這會產生:
ajsh askj sdjh 54 12
jhgj 765 2839
2356 423 34 45 34
uj5u.com熱心網友回復:
沒有我希望的那么優雅
nawk '($5== $(5*( $5<=4^3))) (3>FNR)'
ajsh askj sdjh 54 12
jhgj 765 2839
2356 423 34 45 34
uj5u.com熱心網友回復:
$ awk 'NR<=2 || ($5 0==$5 && $5<65)' file
uj5u.com熱心網友回復:
我的解決方案是:
awk 'BEGIN { for(i=0;i<2;i ) {getline; print;}}$5<65{print}' input
- 該
BEGIN塊在開始時執行。getline讀取一行,然后輸出。 $5<65與其if構造,不如使用模式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/461192.html
上一篇:如何在bash中回顯重音符號
