Linux 使用sed替换
我想动态地替换IP,但有些人将单词$IP替换为实际值Linux 使用sed替换,linux,shell,sed,redhat,Linux,Shell,Sed,Redhat,我想动态地替换IP,但有些人将单词$IP替换为实际值 IP=10.50.33.44 PORT=5774 sed -i~ 's/https:\/\/10.11.12.13:8443/https:\/\/$IP:$PORT/g' abc.txt 您能帮我获取正确的值吗?对于变量展开,请使用双引号“: sed -i~ "s/https:\/\/10.11.12.13:8443/https:\/\/$IP:$PORT/g" abc.txt 如前所述,使用不同的分隔符。例如 sed -i~
IP=10.50.33.44
PORT=5774
sed -i~ 's/https:\/\/10.11.12.13:8443/https:\/\/$IP:$PORT/g' abc.txt
您能帮我获取正确的值吗?对于变量展开,请使用双引号“
:
sed -i~ "s/https:\/\/10.11.12.13:8443/https:\/\/$IP:$PORT/g" abc.txt
如前所述,使用不同的分隔符。例如
sed -i~ "s;https://10.11.12.13:8443;https://$IP:$PORT;g" abc.txt
主题的变化:我总是用单引号括住sed/awk/perl…命令,因为shell有时会在使用双引号时绊倒您。 我发现最好是双重引用变量:
sed -i~ 's/https:\/\/10.11.12.13:8443/https:\/\/'"$IP"':'"$PORT"'/g' abc.txt
作为一个“腰带和支架”,以及我通常在bash的命令行中以交互方式编写命令,键绑定M-C-e(在大多数键盘上是Alt-Control-e)将在命令发送之前插入命令。让您直观地看到命令真正得到了什么。一个小提示:如果您不想转义
/
字符,可以使用类似s%%%
的内容。/
或%
字符当然可以是模式或替换中找不到的其他字符。