machineName=machine1
置換: MACHINEDOTS="'uname -n'" を MACHINEDOTS="machine1" に
次のsed cmdを試しましたが、
sed 's/MACHINEDOTS="'uname -n'"/MACHINEDOTS="'$machineName'"/g' tmp mv -f tmp パス
表示されるエラー: 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'