如何在其中包含可变内容的行中使用 sed 进行搜索和替换?

如何在其中包含可变内容的行中使用 sed 进行搜索和替换?

我尝试使用 sed 编辑文本文件中特定行的某些部分并将更改保存到原始文件。好吧,我现在明白这不是 sed 直接工作的方式。但是如何在脚本中使用 sed 来编辑行中包含可变内容的部分呢?我已经使用 sed 来更改完整行或使用行作为触发器来剪切并插入到新文件。但这是不同的:)我认为我需要的是

sed '/baz/s/foo/bar/g'

sed '/beginning of line/s/static text/new static text/g'

这给了我正确的输出,但如何将其保存到源文件中?我知道 sed 输出到 stoud,但是当我添加“>> outpufile”时,它会给我一条错误消息

sed: -e Ausdruck #1, Zeichen 55: Unbekannte Option für `s'

静态文本和新静态文本之间是一些不时变化的内容,因此

sed -n '/static text/new static text/,$p' tmp >> source

仅当源内容未更改时才有效。

有什么建议么?

格瑞兹

答案1

micha@linux-micha: /tmp
$ echo 'alpha bravo charlie' > blah.txt

micha@linux-micha: /tmp
$ cat blah.txt
alpha bravo charlie

micha@linux-micha: /tmp
$ sed -i 's/bravo/delta/' blah.txt

micha@linux-micha: /tmp
$ cat blah.txt
alpha delta charlie

相关内容