SHELL - SED 替换“”之间的文本
SHELL - SED replacing text between " "
我是 shell 和 SED 的新手。我正在尝试替换文件中的文本。此文本介于“”之间,我正在努力创建命令...
文件内容如下:
download_amule_tcp_port="42450"
我的代码:
TCPPort=44444
sed -i 's/^download_amule_tcp_port=\".*/download_amule_tcp_port=\"$TCPPort\"/' settings.conf
它不起作用...
download_amule_tcp_port=$TCPPort"
感谢您的帮助!
男
==== 编辑 ==== 评论中的正确语法应该是:
TCPPort="44444"
sed -i "s/^download_amule_tcp_port=.*/download_amule_tcp_port=\"$TCPPo
rt\"/" settings.conf
这行得通。谢谢!
问题出在单引号上,它阻止变量 $TCPPort 在本例中扩展为“44444”。
下面的代码应该可以工作
TCPPort="44444"
sed -i 's/^download_amule_tcp_port=".*/download_amule_tcp_port="'"$TCPPort"'"/g' settings.conf
使用双引号代替单引号并转义内部双引号:
sed -i "s/^download_amule_tcp_port=\".*/download_amule_tcp_port=\"$TCPPORT\"/" settings.conf
顺便说一句,您设置变量 TCPPort
而不是 TCPPORT
。
我是 shell 和 SED 的新手。我正在尝试替换文件中的文本。此文本介于“”之间,我正在努力创建命令...
文件内容如下: download_amule_tcp_port="42450"
我的代码:
TCPPort=44444
sed -i 's/^download_amule_tcp_port=\".*/download_amule_tcp_port=\"$TCPPort\"/' settings.conf
它不起作用...
download_amule_tcp_port=$TCPPort"
感谢您的帮助!
男
==== 编辑 ==== 评论中的正确语法应该是:
TCPPort="44444"
sed -i "s/^download_amule_tcp_port=.*/download_amule_tcp_port=\"$TCPPo
rt\"/" settings.conf
这行得通。谢谢!
问题出在单引号上,它阻止变量 $TCPPort 在本例中扩展为“44444”。
下面的代码应该可以工作
TCPPort="44444"
sed -i 's/^download_amule_tcp_port=".*/download_amule_tcp_port="'"$TCPPort"'"/g' settings.conf
使用双引号代替单引号并转义内部双引号:
sed -i "s/^download_amule_tcp_port=\".*/download_amule_tcp_port=\"$TCPPORT\"/" settings.conf
顺便说一句,您设置变量 TCPPort
而不是 TCPPORT
。