我的sed输入如下:
sed 's/ListenAddress=.*/ListenAddress= $hostname/' nodemanager.properties
我正在尝试针对Linux服务器运行此操作并将ListenAddress={current_value}
替换为ListenAddress={hostname_of_server}
我需要知道如何运行hostname命令并将该输出反映在ListenAddress=
由于
答案 0 :(得分:0)
如果您希望bash变量反映在sed
脚本内,请使用双引号。这对于命令替换也是有效的。所以你应该这样做
sed "s/ListenAddress=.*/ListenAddress= $(hostname)/" nodemanager.properties
由于发生了可变扩展,因此您需要注意$
显示为sed
属性的某些情况。例如,如果您仅将上述命令应用于文件的最后一行,则执行
sed "\$s/ListenAddress=.*/ListenAddress= $(hostname)/" nodemanager.properties
请注意$
命令转义之前的s
,这意味着它是提供给脚本的文字$
。