我有问题。我想用另一个文件的内容替换文件的一行。
在我的第一个文件中,我有这一行:"#Content"
我希望将其替换为文件content.xml
的内容。
感谢。
答案 0 :(得分:3)
这可行:
your_new_text=$(cat content.xml | sed 's/[^-A-Za-z0-9_]/\\&/g')
sed -i "s/#Content/$your_new_text/" your_file
它将content.xml
中的文字放在变量$your_new_text
中。然后sed完成工作:-i
代表替换文件,查找#Content
并替换$your_new_text
内的文字。
请注意,必须将"
包裹起来才能正常工作。
答案 1 :(得分:0)
这也可以起作用,效果不是很好 - 但对内容不敏感。
cat <(sed '/#Content/,$d' < FILE ) content.xml <(sed '1,/#Content/d' < FILE) > NEWFILE
所以,catenate