我使用grep查找包含搜索字符的行。除了那条线,我想要前一行以及后一行。
For example
cat test.csv
bbbbbbbbbbbbb
xxx234.123yyy
abc123.456efg
zzz789.222xxx
aaaaaaaaaaaaa
grep '123.456' test.csv
I get a line say,
abc123.456efg
Addition to that I need like this
xxx234.123yyy
abc123.456efg
zzz789.222xxx
答案 0 :(得分:2)
您可以使用-A
和-B
选项:
% grep -A1 -B1 '123.456' test.csv
xxx234.123yyy
abc123.456efg
zzz789.222xxx
这会打印一行前导上下文和一行尾随上下文。
作为一种快捷方式,grep还提供了-C
和-A
组合的-B
选项:
% grep -C1 '123.456' test.csv
xxx234.123yyy
abc123.456efg
zzz789.222xxx
答案 1 :(得分:2)
grep -C 1 abc123 input
来自man-page:
-C NUM, -NUM, --context=NUM
Print NUM lines of output context
答案 2 :(得分:1)
这是-C
标志设计用于
$ cat file
bbbbbbbbbbbbb
xxx234.123yyy
abc123.456efg
zzz789.222xxx
aaaaaaaaaaaaa
$ grep 123.456 file
abc123.456efg
$ grep -C1 123.456 file
xxx234.123yyy
abc123.456efg
zzz789.222xxx