第一次比赛后仅使用sed追加一行

时间:2019-01-26 20:37:43

标签: bash sed pattern-matching

我正在使用sed,并且我有一个包含

的文件

苹果
橙色
香蕉
橙色

我只想在第一个橙色后面插入“梨”。所以输出应该是这样的

苹果
橙色

香蕉
橙色

我使用了这个sed选项:

  

sed -i'0,/ orange / a pear'文件名

但这给了我这样的输出:

苹果

橙色

香蕉
橙色

2 个答案:

答案 0 :(得分:0)

使用替代

s/^orange$/&\npear/;tl;b;:l;{n;bl}

使用追加

/^orange$/ {
    a\
pear
    bl
}
b;:l;{n;bl}

答案 1 :(得分:0)

这可能对您有用(GNU sed):

window

关注从文件sed '0,/orange/!b;//a\pear' file 的开始到字符串0的第一次出现的行范围,否则请退出。如果该行包含字符串orange的第一个匹配项,请附加字符串orange