我有一个文件,其中行包含带字符的数字,只包含字符和数字。我想选择只有数字的行。我试过了egrep '[^[:alpha:]]' filename
,但我也带了字符。有什么想法吗?
AQ
Feb 9, 1999
11:45
45
我只想要
45
答案 0 :(得分:1)
正则表达式需要检查该行上的所有内容是否为数字。因此,表达式周围需要^
和$
来匹配每行的开头到结尾。此外,匹配将需要明确地用于数字,而不是非alpha。
E.g。
egrep '^[[:digit:]]+$' filename
这很好地反对了问题中的例子。
答案 1 :(得分:1)
我会排除任何包含非数字字符的行:
Picasso
.get()
.load(BASE_URL + movieData.moviePoster)
.into(holder.imageView)
答案 2 :(得分:0)
awk
只有数字的行,没有别的
$ awk '/^[0-9]+$/' file
45
或者,排除任何没有数字字符的行
$ awk '!/[^0-9]/' file
45
答案 3 :(得分:0)
要匹配仅包含数字的行,请使用"整行模式"与-x
:
grep -xE '[[:digit:]]+' file
或将行开始/结束锚点添加到正则表达式:
grep -E '^[[:digit:]]+$' file
请注意,如果您只关注匹配0到9之间的ASCII字符,则可以用范围[:digit:]
替换字符类0-9
:
grep -xE '[0-9]+' file