我的目的是确定配置文件中是否存在整行。
下面是一个例子:
端口配置:
#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
,则可以得到所需的内容。