gpt4 book ai didi

Linux:如何替换两行之间的所有文本并使用 sed 将其替换为变量的输出?

转载 作者:行者123 更新时间:2023-12-04 07:24:27 27 4
gpt4 key购买 nike

我有一个与此 SO 线程非常相似的问题:how to replace all lines between two points and subtitute it with some text in sed
考虑这样一个问题:

$ cat file
BEGIN
hello
world
how
are
you
END

$ sed -e '/BEGIN/,/END/c\BEGIN\nfine, thanks\nEND' file
BEGIN
fine, thanks
END

我如何将已保存的文本注入(inject)到变量中,例如:
str1=$(echo "This is a test")
如何在 fine, thanks 的位置注入(inject) str1 的输出, 像:
sed -e '/BEGIN/,/END/c\BEGIN\n$str1\nEND' file  # fails to work as hoped
我还想保存输出以覆盖文件。

最佳答案

你可以用这个sed :

sed -e '/BEGIN/,/END/ {//!d; /BEGIN/r file.html' -e '}' file
这将插入 file.html 的内容 BEGIN 之间的文件和 END .要将更改保存回文件:
sed -i -e '/BEGIN/,/END/ {//!d; /BEGIN/r file.html' -e '}' file

关于Linux:如何替换两行之间的所有文本并使用 sed 将其替换为变量的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68292742/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com