タイプが一致するかどうかを検索したいです。
super([A-Za-z]+ , self)
コードベースから。
$ grep -nr '[s][u][p][e][r][(]' .
それを含むすべての行を表示しsuper(
たいときに
[A-Za-z] +を使用して以下の行を検索しようとすると、結果はありません。誰かが私のコードベースのすべての行を検索するのを手伝うことはできますかsuper(*word* , self)
?
anupam:codebase-2.0$ grep -nr '[s][u][p][e][r][(][A-Za-z]+' .
anupam:codebase-2.0$
ベストアンサー1
デフォルトでは、grep
BRE(基本正規表現)が使用されます。つまり、このような特殊文字は+
リテラル文字として解釈されます。したがって、GNU grepではエスケープされて作成する必要があります\+
。 (またはフラグで拡張正規表現(ERE)を使用できます。詳細については、参考-E
資料を参照してください。man grep
)したがって、コマンドは次のように書くことができます。
grep -nr '[s][u][p][e][r][(][A-Za-z]\+'
また、[…]
各文字の周りの線は不要です。一致[…]
などの文字クラスを指定するために使用されます。[ab]
a
または b
。に文字が1つしかない場合、[…]
これは唯一の一致です。したがって、コードを次のようにさらに簡素化できます。
grep -nr 'super([A-Za-z]\+'
注:によるとスティーブン・チャジェラス~のコメント、この\+
設定はGNU拡張です。それでも問題が解決しない場合は、お試しください\{1,\}
。