我有 shell 脚本文件。其中有如下代码:<tag>port:8080</tag>
。
我想用另一行代码替换此行代码:<tag>port:3128</tag>
。
我该怎么做?
我用过cat
,但它删除了所有代码行,只添加了此行代码。谁能告诉我如何在 shell 脚本中替换文本?
这是我尝试的方法:
cat <<EOF > /home/samples/pom.xml
<tag>port:3128</tag>
EOF
答案1
一般命令是sed -i 's/old/new/g' yourfile
。
但必须用 来转义特殊字符\
。
因此命令是:sed -i 's/<tag>port:8080<\/tag>/<tag>port:3128<\/tag>/g' /home/samples/pom.xml
对于路径来说它是::
sed -i 's/<path>home\/user\/location<\/path>/<path>\/user\/tmp\/location2<\/path>/g' /path/to/file
答案2
假设你的文件是当前目录中的 YOURFILE,尝试
sed -i 's/8080/3128/g' YOURFILE
这会将所有出现的 8080 替换为 3128。