egrepと正規表現の使用

egrepと正規表現の使用

次のテキストファイルがあるとしましょうinputFile

hello
HELLO
   Hello World
  wOrld
asdgfsafd 
abc 123
1 3 5 a b

egrepと正規表現を使用して、文字の前後にスペースがあるかどうかにかかわらず、単一の単語(大文字/小文字のシーケンス)のみを含む行を印刷したいと思います。

したがって、出力は次のようになります。

hello
HELLO
  wOrld
asdgfsafd

私が思いついた最高の正規表現は次のとおりです。

egrep ' *[a-zA-Z] *$' inputFile

しかし、うまくいかないようです。どんな提案がありますか?

ベストアンサー1

正規表現が1つの文字ではなく1つ以上の文字と一致するように、+その後に1つを追加する必要があります。[A-Za-z]また、正規表現の先頭をaに固定する必要があります(行の終わりと一致するのではなく、^行の先頭と一致する)。$

egrep '^ *[a-zA-Z]+ *$' inputFile

タブやスペースに合わせて代わりに[[:space:]]*使用したい場合があります。 AZだけでなく、その領域のすべてのアルファベット文字*と一致します。[[:alpha:]]

egrep '^[[:space:]]*[[:alpha:]]+[[:space:]]*$' inputFile

おすすめ記事