grep区分大小写[A-Z]?

时间:2012-06-23 04:22:26

标签: bash command-line grep

我无法使用此模式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

3 个答案:

答案 0 :(得分:7)

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

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

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

使用锚点确保匹配位置正确。 ^

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

[A-Z]对您不起作用的原因是您所使用的区域设置在您的系统上实现的方式,该模式还包括小写字母。

答案 1 :(得分:5)

您可以设置LANG值:

$ LANG=C grep 'T[A-Z]' test.txt
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG

答案 2 :(得分:1)

grep 'T[[:upper:]]' test.txt
grep 'T[ABCDEFGHIJKLMNOPQRSTUVWXYZ]' test.txt