文件data
中有一行,为
[整体],....
使用grep
获取此行时,我发现只能通过
grep“\ [整体]”数据
出于好奇,为什么它不需要[
而不是]
。
编辑:这是在ubuntu 12.04上测试的
答案 0 :(得分:4)
因为]
在[
之前已经没有转义,所以grep '[][-]' ...
只有任何特殊含义。
你可以通过以下方式获得乐趣(如果你有正确的,有些扭曲的心态):
]
这会搜索[
,-
或]
。您必须小心-
的位置;它必须在角色类的开头。您必须小心grep '[^][-]' ...
的位置;它必须在课程的开始或结束时进行。否定班级的插入符必须先行。
{{1}}
答案 1 :(得分:3)
我猜测没有开头[指定一个字符类,结束]没有意义。因此,一旦您逃离了开始支架,关闭的支架就不需要转义。
答案 2 :(得分:1)
我是Derek和Jonathan的第二个回答。在过去的一年中,我发现自己使用的fgrep
超过grep
。 fgrep
与grep -F
或grep --fixed-strings
相同,其中搜索字词只是一个字符串,而不是正则表达式。例如,如果我想搜索[overall]
:
fgrep "[overall]" file