2014-10-22 2 views
0

Я пытаюсь передать вывод команды grep в значение «replace me to» в команде sed. Я пробовал xargs и только трубку, но я не могу заставить ее работать. Все примеры, которые я нашел при переполнении стека, предполагают, что я знаю конечный результат моей команды grep. Вот пример того, что я пытаюсь сделать.Выход grep grep в sed для замены всей строки

cat /etc/sysconfig/network | grep HOSTNAME | grep -i s/greppedline/"HOSTNAME=something"/ 

Эффективно, я не знаю, все содержимое строки, мне нужно заменить только тот факт, что HOSTNAME будет в нем. Есть ли возможность сделать это как однострочный, не создавая переменную из grep commmand?

ответ

1

Я думаю, что вы пытаетесь сделать так,

sed '/HOSTNAME/s/.*/"HOSTNAME=something"/' /etc/sysconfig/network 

Добавить опцию рядный редактировать -i, чтобы сохранить сделанные изменения.

sed -i.bak '/HOSTNAME/s/.*/"HOSTNAME=something"/' /etc/sysconfig/network 
+0

Awesome, даже не понимаю, что я мог бы использовать подстановочные с СЭД. Большое спасибо. – akitosh

+0

Рад, что все получилось .. –

0
sed '/HOSTNAME/ c\ 
"HOSTNAME=something"/' /etc/sysconfig/network 

или

sed 's/.*HOSTNAME.*/"HOSTNAME=something"/' /etc/sysconfig/network 
Смежные вопросы