Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用sed复制匹配模式的行_Sed - Fatal编程技术网

使用sed复制匹配模式的行

使用sed复制匹配模式的行,sed,Sed,我一直在努力寻找一个特定的命令在论坛上有一段时间,但没有找到解决办法,所以我希望你能帮助我。我想做的很简单。我想使用see复制与图案匹配的线条。例如,如果我有一个类似以下内容的文件: abc def cda abd 我想复制包含“ab”的每一行,即: abc abc def cda abd abd 我尝试了以下语法: sed '/ab/a\&' myfile 因为我在某个地方读到,字符“&”代表已匹配的模式,但我得到的是: abc &def cda abd & 有

我一直在努力寻找一个特定的命令在论坛上有一段时间,但没有找到解决办法,所以我希望你能帮助我。我想做的很简单。我想使用see复制与图案匹配的线条。例如,如果我有一个类似以下内容的文件:

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/