2016-10-07 7 views
0

Я пытался выполнить эту команду:SED команда возвращает ошибки

sudo sed -i 's/^\$projectroot.*/\$projectroot = \\"\\/home\\/repo\\";/' /etc/gitweb.conf 

Он возвратил ошибку:

sed: -e expression #1, char 42: unknown option to `s' 

Я не понимаю, почему s используется в sed команде. Пожалуйста, помогите

+0

Возможный дубликат [Использование слэши в СЭД заменить] (http://stackoverflow.com/questions/5864146/use -slashes-in-sed-replace) – tripleee

ответ

1

Ваша команда должна быть:

sed -i 's/^\$projectroot.*/\$projectroot = \"\/home\/repo\";/' 

Пример:

$ cat File 

aaaaaaaaaa 
bbbbbbbbbb 
$projectroot 
dddddddddd 

$ sed 's/^\$projectroot.*/\$projectroot = \"\/home\/repo\";/' File 

aaaaaaaaaa 
bbbbbbbbbb 
$projectroot = "/home/repo"; 
dddddddddd 
+0

Как насчет '/ etc/gitweb.conf'? –

+1

Это образец. U может выдавать '/etc/gitweb.conf' вместо 'File'. См. Примерный результат, полученный –

+0

Спасибо ... Теперь он работал. –