linux bash sed搜索并用sed字符替换

时间:2014-04-15 12:56:57

标签: bash sed filepath

我正在尝试使用该行中的sed字符搜索并替换单行的文本。该行是文件路径,因此它具有/ *。而不是它。我搜索并发现了n \和反对\但是这些似乎没有用。无论我做错了什么都很简单,但我看不到穿过森林的树。

要编辑的数据:

Include conf.d/*.conf

我正在尝试编辑

conf.d/*.conf 
conf.d/vhosts/*.conf

包含是文件中的其他位置,但这是第一个单词的唯一出现位置。这就是我到目前为止所做的:

sed -i "/^Include/ s/\conf.d/*.conf\/ */\conf.d/vhosts/*.conf\/" /etc/httpd/conf/httpd.conf

我已经尝试了

sed -i "/^Include/ s/[conf.d/*.conf]/[conf.d/vhosts/*.conf]/g" /etc/httpd/conf/httpd.conf

这是标准的搜索错误消息:

Error Message: sed: -e expression #1, char 29: unknown option to `s'

我知道这很简单,但我似乎无法弄明白。过去一小时我一直坚持这一点。如果我可以通过这个,那么我可以用sed字符编辑documentroot和其他元素。

sed版本GNU sed版本4.2.1

1 个答案:

答案 0 :(得分:1)

sed -i "s|conf.d/\*.conf|conf.d/vhosts/\*.conf|g" /path/to/file
  • 将分隔符更改为|
  • Escaped asterisk