1

文件中有一行data,如

[总体], ....

当使用grep获取这条线时,我发现这只能通过

grep "\[整体]" 数据

只是出于好奇,为什么它需要逃跑[而不是为了]

编辑:这是在 ubuntu 12.04 上测试的

4

3 回答 3

4

因为]only 当它前面已经有一个[没有转义的 a 时,它才具有任何特殊含义。

您可以通过以下方式获得乐趣(如果您有正确的,有些扭曲的心态):

grep '[][-]' ...

这将搜索]或。您必须小心放置; 它必须在角色类的开头。您必须小心放置; 它必须在课程开始或结束时进行。否定类的插入符号必须先出现。[-]-

grep '[^][-]' ...
于 2012-07-20T15:06:41.557 回答
3

我猜如果没有开头 [ 来指定字符类,则结尾 ] 没有意义。因此,一旦您转义了左括号,就不需要转义右括号。

于 2012-07-20T15:05:55.970 回答
1

我赞同 Derek 和 Jonathan 的回答。一年多来,我发现自己使用fgrep超过grep. 与orfgrep相同,其中搜索词只是一个字符串,而不是正则表达式。例如,如果我想搜索:grep -Fgrep --fixed-strings[overall]

fgrep "[overall]" file
于 2012-07-20T16:34:13.497 回答