2011-01-10 17 views
0

我試圖寫一個grep/sed/awk的條件從一個文件,並在同一時間的負面條件(不包含xxx)和我也想grep所有行>超過特定行號。grep,負面條件,並超過一定的行號

+0

請允許我歡迎你們來的StackOverflow,並提醒您三件事,我們通常在這裏做的:1)當你得到幫助,儘量給它太**回答問題**你專業2的面積)[`閱讀FAQ !!`](http://stackoverflow.com/faq)3)當你看到很好的問題和答案時,請使用[灰色三角形](http://i.imgur.com/kygEP因爲系統的可信度基於用戶通過分享知識獲得的聲譽。另外請記住接受更好地解決您的問題的答案,如果有的話,[按'checkmark sign`](http://i.imgur.com/uqJeW.png) – 2011-01-10 03:16:45

回答

1

awk中應該處理的是很好的:

/condition/ && ! /negative condition/ { print $0; outputdone = 1 } 

{ if(NR > certain_line_number && !outputdone) print $0 
    outputdone = 0 
} 

我不是很肯定如果應用了所有的條件。我猜想你總是希望打印出超出某一點的線條,但是直到那時纔會應用正面和負面條件。

+0

謝謝!這可以工作 – Templar 2011-01-10 03:15:33

+0

你可以將它縮短爲'awk'(/ condition/&&!/ negative condition /)|| NR> certain_line_number)'`。你仍然可以包含你的`outputdone`標誌,但是我不明白爲什麼需要這個標誌。 – mschilli 2013-09-04 10:49:49

0
tail -<number of lines that you want from end of file> filename | grep -v xxx