
假設我有一個包含內容的文字檔案:
foo
bar
whatever
something I don't know
bar2
whatever
grep whatever myfile.txt
並且,作為(and/orsed
和/or )的輸出awk
,我希望:
foo
something I don't know
我嘗試過使用選項-B 2
,但同時輸出foo
和bar
。
無法... | grep -v bar
這樣做,因為有很多不同的記錄。
答案1
不是 grep,但應該可以:
awk '/grep_string/ {print a} {a=b;b=$0}' 文件
答案2
所以這是我的解決方案,因為我找不到任何方法:
當我返回大量內容時,請說:
foo
bar
whatever
--
foo2
bar2
whatever
--
等等,我使用 grep 的分隔符號並得到下一行,如下所示,然後刪除它們:
grep -B2 whatever myfile.txt | grep -v whatever | grep -A 1 -E '\-\-' | grep -v -E '\-\-'
這只是輸出:
foo
foo2