linux - 将 grep 输出通过管道传输到 sed 以替换整行

标签 linux bash sed grep

我正在尝试将 grep 命令的输出通过管道传输到 sed 命令中的“将我替换为”值。我试过 xargs 和一个管道,但我似乎无法让它工作。我在 stack overflow 上找到的所有示例都假设我知道 grep 命令的最终结果。这是我正在尝试做的一个例子。

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

实际上,我不知道需要替换的行的全部内容,只知道 HOSTNAME 会在其中。有没有办法在不从 grep 命令创建变量的情况下一次性完成此操作?

最佳答案

我认为你正在尝试这样做,

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

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

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

关于linux - 将 grep 输出通过管道传输到 sed 以替换整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26507679/

相关文章:

linux - 从文件名中存在的日期字符串设置文件修改时间

linux - 如何将一些行移动到文件的顶部?

linux - 跨多台计算机管理用户配置文件

linux - Linux 文件系统中的读取访问权限。 rwx---r--

linux - 如何制作 awk 变量的 bash 副本?

json - 从 JSON 对象中提取值并将它们分配给循环中的 shell 变量

bash - 为什么 `system` 不会创建并返回一个变量?

linux - 使用 grep、sed 或 awk 解析字符串

c - 使用Netfilter在两个网络设备之间转发数据包

linux - Linux 是如何执行一个文件的?