匹配字符串,将行复制到下一行并使用 sed 修改字符串

Sam*_*er 2 sed

我有一个包含 2 行的文件

  • 第 1 行:“我的名字是 ABCD”。
  • 第 2 行“我的名字是 XYZ”。

我想复制带有字符串“我的名字”的所有行并将整行粘贴到下一行,但也用新字符串更改该行。EG:新文件应如下所示:

  • 第 1 行:“我的名字是 ABCD”
  • Line2:“我的名字是 ABCD,年龄 2”
  • 第三行:“我的名字是 XYZ”
  • 第 4 行:“我的名字是 XYZ,年龄 2”

SLe*_*ort 5

尝试这个:

sed 's/My name.*/&\n& and age 2/' file
Run Code Online (Sandbox Code Playgroud)

说明:

  • 模式:My name.*搜索包含My name后跟任何字符的行.*
  • 替换:&替换为匹配的字符串,后跟换行符\n,再后跟匹配的字符串\&,最后是and age 2

要就地编辑文件,请添加-i标志:

sed -i 's/My name.*/&\n& and age 2/' file
Run Code Online (Sandbox Code Playgroud)