Linux 将grep输出导入sed以替换整行
我正在尝试将grep命令的输出通过管道传输到sed命令中的“replace me with”值中。我试过xargs和一根管子,但我似乎无法让它工作。我在堆栈溢出上找到的所有示例都假设我知道grep命令的最终结果。这是一个我正在尝试做的例子Linux 将grep输出导入sed以替换整行,linux,bash,sed,grep,Linux,Bash,Sed,Grep,我正在尝试将grep命令的输出通过管道传输到sed命令中的“replace me with”值中。我试过xargs和一根管子,但我似乎无法让它工作。我在堆栈溢出上找到的所有示例都假设我知道grep命令的最终结果。这是一个我正在尝试做的例子 cat /etc/sysconfig/network | grep HOSTNAME | grep -i s/greppedline/"HOSTNAME=something"/ 实际上,我不知道需要替换的行的全部内容,只知道其中包含主机名。如果不从grep命
cat /etc/sysconfig/network | grep HOSTNAME | grep -i s/greppedline/"HOSTNAME=something"/
实际上,我不知道需要替换的行的全部内容,只知道其中包含主机名。如果不从grep命令中创建变量,是否可以作为一个一行程序来执行此操作?我认为您正在尝试这样做
sed '/HOSTNAME/s/.*/"HOSTNAME=something"/' /etc/sysconfig/network
添加内联编辑-i
选项以保存所做的更改
sed -i.bak '/HOSTNAME/s/.*/"HOSTNAME=something"/' /etc/sysconfig/network
或
太棒了,我甚至没意识到我可以用sed的通配符。非常感谢。
sed '/HOSTNAME/ c\
"HOSTNAME=something"/' /etc/sysconfig/network
sed 's/.*HOSTNAME.*/"HOSTNAME=something"/' /etc/sysconfig/network