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

时间:2016-12-22 17:00:30

标签: sed

我有一个包含2行的文件

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

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

  • 第1行:“我的名字是ABCD”
  • 第2行:“我的名字是ABCD,2岁”
  • 第3行:“我的名字是XYZ”
  • 第4行:“我的名字是XYZ,2岁”

3 个答案:

答案 0 :(得分:2)

试试这个:

sed 's/My name.*/&\n& and age 2/' file

说明:

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

要编辑文件,请添加-i标记:

sed -i 's/My name.*/&\n& and age 2/' file

答案 1 :(得分:1)

#!/usr/bin/awk -f
1
{
  print $0, "and age 2"
}

或者:

#!/bin/sh
awk '1 {print $0, "and age 2"}' file

答案 2 :(得分:1)

请您试着跟随并告诉我这是否对您有帮助。

awk '{Q=$0;sub(/\".$/," and age 2\".",Q);print $0 ORS Q}' Input_file