2016-08-11 1 views
0

Я хочу найти и заменить всю строку, включая добавление нового текста в PHP с помощью команды sed в Linux. Я пробовал ниже, но он не работает для переменной, но работает, когда я вручную передаю.Как использовать переменную в команде sed с помощью PHP для замены строки

Пример (это работает):

$var = exec("sed -i '/Tom/c Tom Rick' t1.conf"); 

Пример (Это не работает):

$var1 = "Tom"; 
$var2 = "Rick"; 

$var = exec("sed -i '/$var1/c $var1 $var2' t1.conf"); 

Я попытался с кавычками, но до сих пор не повезло. Может кто-то, пожалуйста, помогите мне решить эту проблему.

+0

Оба примера работают, когда я пытаюсь. И тег [tag: environment-variables] неуместен - нет непосредственных переменных среды. – Armali

ответ

0

Возможно, вам следует извлечь переменные из вашей строки, чтобы убедиться, что '$' не рассматривается как символ?

$var = exec("sed -i '/".$var1."/c ".$var1." ".$var2".' t1.conf"); 
+0

Спасибо, Жюльен! решение работало после некоторой небольшой модификации. –

 Смежные вопросы

  • Нет связанных вопросов^_^