将grep输出管道输入sed以替换整行

时间:2014-10-22 12:40:39

标签: linux bash sed grep

我试图将grep命令的输出传输到'替换为' sed命令中的值。我尝试过xargs而只是管道,但我似乎无法让它运转起来。我在堆栈溢出时发现的所有示例都假设我知道grep命令的最终结果。以下是我尝试做的一个例子。

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

实际上,我不知道我需要替换的行的全部内容,只是HOSTNAME将在其中。在没有从grep命令创建变量的情况下,有没有可以做到这一点?

2 个答案:

答案 0 :(得分:1)

我认为你正试图这样做,

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

添加内联编辑-i选项以保存所做的更改。

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

答案 1 :(得分:0)

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

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