如何在另一个及以上(或之间)下面的线上grep

时间:2016-10-26 09:36:29

标签: linux unix aix

我想要一个包含数字638的行。

输出文件包含以下文字:

Please label this tape as number 1 in the arc tape sequence. 

This tape contains the following logical logs:

 638

Program over.
Done at Tue 25 Oct 2016 11:34:07 GMT

我的目标是grep 638号。请注意,这个数字可能因系统而异。我想在文本“此磁带包含以下逻辑日志:”之后grep下一行,以打印所需的数字行638或grep“Program over”。得到638。

我尝试了下面的内容,它不起作用:

grep -A "This tape contains the following logical logs" filename | 
grep -B 1 "Program over." | grep -v "Program over."

Grep -Agrep -B由于某种原因无效。

我收到以下错误消息:

grep: Not a recognized flag: A

是否有可用于此的awk命令?

3 个答案:

答案 0 :(得分:1)

sed -n '/logical/{n;n;p;}' ontape-level0.out

答案 1 :(得分:0)

-A(用于之后)和-B(用于之前)需要数字参数,如手册页中所述。如:

compile 'com.android.support:recyclerview-v7:24.0.0'

这会使你提到的集团受到影响。

答案 2 :(得分:0)

这对我有用:

sed -n'/此磁带包含以下逻辑日志:/ {n; n; p;}'ontape-level0.out'