次のテキストファイルがあるとしましょう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