我正在寻找一个sed
命令,以匹配模式和复制模式行和n
数量的行后此行。模式是01
,02
,03
序列。
示例:
group-title=01- line1
http://www.yahoo.com
group-title=02- local3
http://www.altavista.com
group-title=01- koko1
http://www.bbc.com
所需输出:
group-title=01- line1
http://www.yahoo.com
group-title=01- koko1
http://www.bbc.com
我试过了
sed -n "/01- /p" orignal.txt > copyof.txt
但这只是复制行匹配模式。我必须复制第二行也作为第二行有它的链接。
3条答案
按热度按时间4xrmg8kj1#
使用
grep
:在这里,GNU
grep
使用选项:-A num, --after-context=num
:在每次匹配后打印num
行尾随上下文。另请参阅-B
和-C
选项。0yg35tkg2#
grep -A
是更好的方法(参见Timur Shtatland的答案),但是如果您真的想使用sed
,下面是方法:说明:当
{p;n;p;}
找到匹配的行时,它将print该行,获得next行,并print该行。注意,它不会注意到额外行中的其他匹配项,因此,例如,如果一行中有两个匹配行,它会打印它们,但不会像您所期望的那样打印下一行(
grep -A
会这样做)。pzfprimi3#
使用GNU
sed