MACHINENAME = MACHINE1
替换: MACHINEDOTS =“'uname -n'” 至 MACHINEDOTS = “MACHINE1”
我尝试了以下sed cmd,
sed's / MACHINEDOTS =“'uname -n'”/ MACHINEDOTS =“'$ machineName'”/ g'tmp mv -f tmp路径
显示错误: sed:无效选项 - '“'
答案 0 :(得分:1)
当我尝试在Mac OS X 10.7上运行您的示例时,我得到一个“未终止的替代模式”,因为您使用双引号“而不是单引号”或反引号`。
用单引号替换双引号并在tmp之后摆脱垃圾(你的意思是&& mv -f tmp path?),如下所示:
sed 's/MACHINEDOTS=''uname -n''/MACHINEDOTS="'$machineName'"/g' tmp
有效,但我不能100%确定这是否是你想要的。
答案 1 :(得分:0)
sed's / MACHINEDOTS =“'uname -n'”/ MACHINEDOTS =“'$ machineName'”/ g'tmp mv -f tmp path
您的意思是评估uname -n
吗?它需要在后面。
像这样:
$ sed 's/\(MACHINEDOTS="\)'`uname -n`'"/\1'$machineName'"/g'