使用 sed 将文本附加到模式的第一次出现处

使用 sed 将文本附加到模式的第一次出现处

假设有如下文本文件:

Hello world
types=""
Mario
types="Game"

我想要做的是找到第一次出现的type=""“program”并将其附加在后面。我需要输出如下内容:

Hello world
types="program"
Mario
types="Game"

我需要在 Unix shell 脚本中使用它。我尝试的是:

sed -i '1,/types=""/s/types=""/types="program"/' filename

从命令来看,它只能插入,不能追加。我尝试添加,a\但仍然不起作用。

答案1

您的sed单行替换似乎已经按预期工作:

$ cat t.txt
Hello world
types=""
Mario
types="Game"

$ sed '1,/types=""/s/types=""/types="program"/' t.txt

Hello world
types="program"
Mario
types="Game"

也许值得编辑你的问题来展示什么当您运行sed命令时获取(不带-i选项,以便将结果打印到终端)。

顺便说一句,你的范围1,/types=""/是多余的。你可以将其简化为:

sed '/types=""/s/types=""/types="program"/' t.txt

相关内容