linux - 我如何使用 sed 执行此替换?

标签 linux bash

我需要用一些东西替换文件中的一行

#Banner none

Banner /etc/motd

我试过:

sed -i "s/^#Banner none/Banner /etc/motd/" /root/testfile.sh

这是行不通的。你知道我怎样才能做我想做的事吗?

最佳答案

因为替换中有斜线,所以应该使用除斜线之外的其他分隔符,例如逗号:

sed -i "s,^#Banner none,Banner /etc/motd/," /root/testfile.sh

否则,您必须转义路径中的斜线:

sed -i "s/^#Banner none/Banner \/etc\/motd/"

关于linux - 我如何使用 sed 执行此替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45524796/

相关文章:

macos - 如何在 Mac 中创建批处理文件?

regex - 在文件中找到正则表达式的第一个匹配项,并打印它

linux - 重新协商速率限制

regex - Cygwin Sed - 一个在开头匹配字符串但在结尾不匹配的表达式

c++ - Intel HD GPU 与 Intel CPU 性能比较

linux - 由于系统中打开的文件太多,Kubernetes 无法启动

c - Bash 一个 liner 来编译、执行和回显返回值?

linux - 为什么 flock 使用描述符或文件

linux - 如何在 Bash 中增加循环中的日期

php - 系统 ("cp/1.txt/2.txt",$输出);只是行不通?