我想問問是否可以將-v和-A結合起來?grep的-v選項與-A選項
我有例如文件:
abc
1
2
3
ACB
def
abc
1
2
3
ABC
xyz
與-AI可以看到我想 「切」 的部分:
$ grep abc -A 4 grep_v_test.txt
abc
1
2
3
ACB
--
abc
1
2
3
ABC
它有一些選項來指定一些只看到
def
xyz
?
我找到了這個答案 - Combining -v flag and -A flag in grep但它不爲我工作,我想
$ sed -e "/abc/{2;2;d}" grep_v_test.txt
sed: -e expression #1, char 8: unknown command: `;'
也
$ sed "/abc/2d" grep_v_test.txt
sed: -e expression #1, char 6: unknown command: `2'
或
$ sed "/abc/+2d" grep_v_test.txt
sed: -e expression #1, char 6: unknown command: `+'
桑達版本:
$ sed --version
GNU sed version 4.2.1
EDIT1:基於 上評論我嘗試了兩種解決方案一點點,但它不工作,我想
爲grep -v -A 1 abc
我希望線ABC和1被刪除,但其餘將被打印awk 'c&&!--c; /abc/ {c=2}' grep_v_test.txt
只打印包含2的行,這不是我想要的。
非常相似它是sed的
$ sed -n '/abc/{n;n;p}' grep_v_test.txt
2
2
EDIT2: 看來,我不能夠正確地描述它,讓我再試一次。
grep -A N abc file
做的是在abc後面打印N行。我想刪除什麼grep -A
將顯示,所以在文件
abc
1
2
3
ACB
def
DEF
abc
1
2
3
ABC
xyz
XYZ
我就刪除部分ABC美國廣播公司,我會打印休息:
ABC
ACB
DEF
DEF
ABC
XYZ
ABC
XYZ
所以4線將保持... awk的溶液打印只是清晰度和xyz和跳過DEF和XYZ ...
只需使用'awk' ---->'awk'c &&!--c;/abc/{c = 5}'文件' – fedorqui
感謝您的答案,它工作正常,但我仍然想知道使用sed的答案(與awk相比,我是一個更大的朋友)。 – Betlista
然後使用[使用sed打印下一行](http://stackoverflow.com/a/3820821/1983854),以便獲得'sed -n「/ abc/{n; n; n; n; n; p}」 file'。 – fedorqui