5つまたは6つの数字のみを含む行をどのようにgrepしますか?このようなもの。
ケース1(先頭にスペースがあります)
10 2 12 1 13
ケース2(先頭にスペースがない)
1 2 3 4 5 6
このようなことがうまくいくと思いました。
grep -E '[0-9]{5}'
承認された回答:
grep -E '[0-9]{5}'
少なくとも5桁の数字を探しています。必要なのは、少なくとも1桁の数字が5つあることです:
grep -E '[0-9]+([^0-9]+[0-9]+){4}'
-
[0-9]+
–少なくとも1桁の数字 -
[^0-9]+[0-9]+
–少なくとも1つの数字があり、その前に少なくとも1つの数字以外の文字が付いている数字。次に、これを4回繰り返して、数字以外で区切られた5つの数字を取得します。 - 要件が正確に5の場合、この正規表現を
[^0-9]
で囲むことをお勧めします。 行全体が一致するようにします(もちろん、アンカーと一致します)。 - ここで必要なものによって異なります(
1,2,3,4,6
を実行します) 資格がありますか?)、他のセパレーターを見るかもしれません。たとえば、適切な科学的記数法の実数は次のようになります。[+-]?(([0-9]+(.[0-9]+)?)|([0-9]?.[0-9]+))([eE][+-][0-9]+)?
したがって、区切り文字に.
を含めることはできません。 、e
、など。mikeserv
のように、空白のみにすることができます。 ノート。または、CSVレコードの場合は、カンマである可能性があります。または、ロケールによっては、コンマが小数点記号になります。[^0-9]
を変更します 必要に応じて。