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

引用符を使用して、パターンがシェルによってファイルシステム内のファイルにグロブとして一致するのを防ぎます。''

名前付き文字クラスを使用して、大文字と小文字を区別した一致を保証します。[[: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 に答える