0

machineName=machine1

置換: 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 に答える