0

机器名称=机器 1

替换: MACHINEDOTS="'uname -n'" 为 MACHINEDOTS="machine1"

我尝试了以下 sed cmd,

sed 's/MACHINEDOTS="'uname -n'"/MACHINEDOTS="'$machineName'"/g' tmp mv -f tmp 路径

显示错误:sed: 无效选项 -- '"'

4

2 回答 2

1

当我尝试在 Mac OS X 10.7 上运行您的示例时,我得到一个“未终止的替代模式”,因为您使用了双引号 " 而不是单引号 ' 或反引号 `。

用单引号替换双引号并在 tmp 之后摆脱垃圾(您的意思是 && mv -f tmp path 吗?),如下所示:

sed 's/MACHINEDOTS=''uname -n''/MACHINEDOTS="'$machineName'"/g' tmp 

有效,但我不能 100% 确定这是否是您想要的。

于 2012-05-31T16:23:24.450 回答
0

sed 's/MACHINEDOTS="'uname -n'"/MACHINEDOTS="'$machineName'"/g' tmp mv -f tmp 路径

你的意思是评价uname -n?它将需要在反引号中。像这样:

$ sed 's/\(MACHINEDOTS="\)'`uname -n`'"/\1'$machineName'"/g'
于 2012-05-31T16:27:49.437 回答