我的目的是确定配置文件中是否存在整行。
下面是一个例子:
端口配置:

#NameVirtualHost *:80
NameVirtualHost *:80

现在我想搜索NameVirtualHost *:80而不是#NameVirtualHost *:80
当然,我的第一个想法是使用grep。这样地:
grep -F "NameVirtualHost *:80" ports.conf这给了我很多不是我想要的东西。
我的第二个想法是像这样使用regex:grep -e "^NameVirtualHost \*:80" ports.conf。但显然现在我必须处理转义特殊字符行*
这可能不是什么大问题,但我想传递个人搜索字符串,不想麻烦转义字符串,因为我正在使用我的脚本。
所以我的问题是:
如何转义特殊字符?或者我怎样才能用不同的工具得到相同的结果?

最佳答案

grep有一个选项-x可以做到:

-x, --line-regexp
          Select only those matches that exactly match the whole line.  (-x is specified by POSIX.)

因此,如果将第一个命令更改为grep -Fx "NameVirtualHost *:80" ports.conf,则可以得到所需的内容。

09-30 14:20