【发布时间】:2012-05-31 16:11:33
【问题描述】:
机器名=机器1
替换: MACHINEDOTS="'uname -n'" 至 MACHINEDOTS="machine1"
我尝试了以下 sed cmd,
sed 's/MACHINEDOTS="'uname -n'"/MACHINEDOTS="'$machineName'"/g' tmp mv -f 临时路径
错误显示: sed: 无效选项 -- '"'
【问题讨论】:
机器名=机器1
替换: MACHINEDOTS="'uname -n'" 至 MACHINEDOTS="machine1"
我尝试了以下 sed cmd,
sed 's/MACHINEDOTS="'uname -n'"/MACHINEDOTS="'$machineName'"/g' tmp mv -f 临时路径
错误显示: sed: 无效选项 -- '"'
【问题讨论】:
当我尝试在 Mac OS X 10.7 上运行您的示例时,我得到一个“未终止的替换模式”,因为您使用了双引号 " 而不是单引号 ' 或反引号 `。
用单引号替换双引号并在 tmp 之后摆脱垃圾(您的意思是 && mv -f tmp path 吗?)像这样:
sed 's/MACHINEDOTS=''uname -n''/MACHINEDOTS="'$machineName'"/g' tmp
有效,但我不能 100% 确定这是否是您想要的。
【讨论】:
sed 's/MACHINEDOTS="'uname -n'"/MACHINEDOTS="'$machineName'"/g' tmp mv -f tmp 路径
您的意思是评估uname -n?它将需要在反引号中。
像这样:
$ sed 's/\(MACHINEDOTS="\)'`uname -n`'"/\1'$machineName'"/g'
【讨论】: