如何将包含相同内容的行替换为相同内容(LINUX)?

如何将包含相同内容的行替换为相同内容(LINUX)?,linux,shell,Linux,Shell,如何用相同的内容替换包含内容的行 例如,我有一行随机的东西,并包含在该行(电子邮件) 我想把所有的行都换成电子邮件,比如说,所有的电子邮件都以(abuse@.*) 我的输出必须是 email: abuse@xx.com -random txt with no email- email: abuse@sdds.net -random txt with no email- email: abuse@sss.org -random txt with no email- 因此,搜索行已(abuse

如何用相同的内容替换包含内容的行

例如,我有一行随机的东西,并包含在该行(电子邮件) 我想把所有的行都换成电子邮件,比如说,所有的电子邮件都以(abuse@.*)

我的输出必须是

email: abuse@xx.com
-random txt with no email- 
email: abuse@sdds.net
-random txt with no email- 
email: abuse@sss.org
-random txt with no email-
因此,搜索行已(abuse@.*)例如。abuse@xx.com 获取电子邮件,然后删除该行并放入 电邮:abuse@xx.com而不是那条线

在shell代码中,gsed-i(或者linux上的sed-i)会有用吗

$ cat substitute.txt 
aaaaaaaaaaaaaa abuse@xx.com
-random lines with no email- 
bbbbbbbbbbbbbb abuse@sdds.net
-random lines with no email- 
cccccccccccccc abuse@sss.org
-random lines with no email-


$ cat substitute.txt | gsed -s "s/.*\(abuse\)/email: \1/" 
email: abuse@xx.com
-random lines with no email- 
email: abuse@sdds.net
-random lines with no email- 
email: abuse@sss.org
-random lines with no email-

$  gsed -i.bak -s "s/.*\(abuse\)/email: \1/" substitute.txt     
$ cat substitute.txt
email: abuse@xx.com
-random lines with no email- 
email: abuse@sdds.net
-random lines with no email- 
email: abuse@sss.org
-random lines with no email-


是的,您也可以这样做,大多数情况下,只需按住(h),按住并附加(h),然后抓住(g):


为我工作谢谢你。。。但是,如果我想保持该行不变,但在其后面添加新行(电子邮件:abuse@....... )
$ cat substitute.txt 
aaaaaaaaaaaaaa abuse@xx.com
-random lines with no email- 
bbbbbbbbbbbbbb abuse@sdds.net
-random lines with no email- 
cccccccccccccc abuse@sss.org
-random lines with no email-


$ cat substitute.txt | gsed -s "s/.*\(abuse\)/email: \1/" 
email: abuse@xx.com
-random lines with no email- 
email: abuse@sdds.net
-random lines with no email- 
email: abuse@sss.org
-random lines with no email-

$  gsed -i.bak -s "s/.*\(abuse\)/email: \1/" substitute.txt     
$ cat substitute.txt
email: abuse@xx.com
-random lines with no email- 
email: abuse@sdds.net
-random lines with no email- 
email: abuse@sss.org
-random lines with no email-

ubuntu@ip-10-0-11-161:~/dev$ cat substitute.txt  | sed -s "/\(.*\)\(abuse\)/{ h;s/.*\(abuse\)/email: \1/;H;g;}"
aaaaaaaaaaaaaa abuse@xx.com
email: abuse@xx.com
-random lines with no email- 
bbbbbbbbbbbbbb abuse@sdds.net
email: abuse@sdds.net
-random lines with no email- 
cccccccccccccc abuse@sss.org
email: abuse@sss.org
-random lines with no email-