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}$'