14

我无法使用此模式grep进行区分大小写的搜索

$ grep 'T[A-Z]' test.txt
The Quick Brown Fox Jumps Over The Lazy Dog
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
4

3 回答 3

7

使用引号来防止 shell 将模式作为 glob 匹配到文件系统中的文件。''

使用命名字符类来保证区分大小写的匹配。[[:lower:]]

使用量词匹配多个字符。\+

使用锚来确保匹配正确定位。^

grep '^T[[:upper:]]\+' test.txt

不适合您的原因[A-Z]是您使用的语言环境是在您的系统上实现的,该模式还包括小写字母。

于 2012-06-23T10:54:11.387 回答
5

您可以设置 LANG 值:

$ LANG=C grep 'T[A-Z]' test.txt
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
于 2012-06-23T04:28:41.737 回答
1
grep 'T[[:upper:]]' test.txt
grep 'T[ABCDEFGHIJKLMNOPQRSTUVWXYZ]' test.txt
于 2012-06-23T09:00:09.683 回答