使用sed复制匹配模式的行
我一直在努力寻找一个特定的命令在论坛上有一段时间,但没有找到解决办法,所以我希望你能帮助我。我想做的很简单。我想使用see复制与图案匹配的线条。例如,如果我有一个类似以下内容的文件:使用sed复制匹配模式的行,sed,Sed,我一直在努力寻找一个特定的命令在论坛上有一段时间,但没有找到解决办法,所以我希望你能帮助我。我想做的很简单。我想使用see复制与图案匹配的线条。例如,如果我有一个类似以下内容的文件: abc def cda abd 我想复制包含“ab”的每一行,即: abc abc def cda abd abd 我尝试了以下语法: sed '/ab/a\&' myfile 因为我在某个地方读到,字符“&”代表已匹配的模式,但我得到的是: abc &def cda abd & 有
abc
def
cda
abd
我想复制包含“ab”的每一行,即:
abc
abc
def
cda
abd
abd
我尝试了以下语法:
sed '/ab/a\&' myfile
因为我在某个地方读到,字符“&”代表已匹配的模式,但我得到的是:
abc
&def
cda
abd
&
有什么我不知道的吗。我想是的
非常感谢你的帮助
仅供参考,我使用的是mac OS X,您可以试试下面的
$ sed 's/.*ab.*/&\n&/g' file
abc
abc
def
cda
abd
abd
你可以试试下面的
$ sed 's/.*ab.*/&\n&/g' file
abc
abc
def
cda
abd
abd
它可以非常简单:
sed '/ab/p' file
默认情况下,sed打印每一行。对于匹配行,请额外打印该行。它可以非常简单:
sed '/ab/p' file
默认情况下,sed打印每一行。对于匹配行,请额外打印该行。短
awk
版本:
awk '/ab/;1' file
abc
abc
def
cda
abd
abd
短
awk
版本:
awk '/ab/;1' file
abc
abc
def
cda
abd
abd
&
仅在s//
命令的替换部分中是特殊的。&
不仅在s///
中是指整个搜索模式内容。因此在s/ab/
中它是ab
,在s/*ab.*/
中它是包含ab
的整行s//
仅在出现先例搜索模式时有效,如/ab/p
或s/ab/foo/
,并将此搜索模式作为当前搜索模式(这里相当于s/ab//
,&
仅在s//
命令的替换部分有特殊之处。&
不仅在s///
中,而且意味着整个搜索模式的内容。因此在s/ab/
中,它是ab
,在s/*ab./
中,它是包含ab/
的整行内容ode>s//仅在出现先例搜索模式时有效,如/ab/p
或s/ab/foo/
,并将此搜索模式作为当前搜索模式(这里相当于s/ab/