特定のパターンを使用する方法(構文?)

特定のパターンを使用する方法(構文?)

pdfgrepを使用して特定のパターン(EまたはSで始まる必要があります)と5桁の数字(のみ)のすべての項目を検索し、コマンド(おそらくmvコマンド)を実行しようとしています。

これまで、次のコマンドがあります。

pdfgrep -e '[E-S]\d{5,}$' filename.pdf

しかし、どんなにしてもそのPDFでは何も見つかりません。特定の用語(pdfgrep "term" filename.pdf)を検索すると関連用語が返されるため、pdfgrepがその用語を見つけることができることがわかります。

私の問題はコマンドや正規表現の構文にあるようですが、正確にどこにあるのかわかりません。

答え1

ここに3つの質問があります。まず、文字クラスは[E-S]「すべての文字と一致」を意味します。~から第二到着S".Eまたはを一致させるには、をS使用します[ES]

次に、{x,y}BRE(Basic Regular Expressions)は反復回数の書式設定をサポートしておらず、サポートしないため、そのフラグを使用してPCRE(Perl Compatible Regular Expressions)を有効にする必要があり\dます。-Pこれにより、「数字」(BREまたは\dで必要)と最後に「5以上」を意味し、必要な5を正確に取得できます。[0-9][[:digit:]]{x,y}{5,}{5}

したがって、これらすべてをまとめると、探しているコマンドは次のようになります。

pdfgrep  -P '[ES]\d{5}$'

関連情報