2013-06-25 74 views
0

我使用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 

回答

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

這就是-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 
2
grep -C 1 abc123 input 

從手冊頁:

-C NUM, -NUM, --context=NUM 
      Print NUM lines of output context 
相關問題