2014-01-14 49 views
3

不確定標題的措辭是否正確,但我正在查找bash命令,該命令檢查搜索項之前的字符。舉例來說,如果我有一個文件(lines.txt),其中包含單詞的列表:檢查前面的字符的Bash搜索命令

stackoverflow 
stack overflow 
stack over flow 

我需要將這個詞over搜索命令,但不包括它之前剛剛有stack任何結果。所以在上面的例子中只有最後兩行會被觸發。

我有grep -i 'over' lines.txt | grep -v 'stackover",但有沒有寫這更好的方法/選項?我用一些其他選項(-E-P)進行了修飾,並且一直在閱讀負面預覽/後面的內容,但無法使非部分工作。

回答

5

是,負向後看應該有所幫助:

grep -P '(?<!stack)over' 
+0

做這項工作,非常感謝! – MeanwhileInHell

1

只要添加一個字邊界會做的伎倆:

grep '\<over'