使用grep计算文件中的所有整数

时间:2018-01-21 15:00:21

标签: regex bash grep wc

我有一个包含以下内容的文件:

9989
-23.
An integer: 23
Number 9090 is cool.
22.33 is not a valid integer
22a33
-111

我运行命令grep -E '\b[-+]?[0-9]+\b' file.txt

此命令查找前导+或 - 然后仅查找0-9之间的数字。它在开始和结束时都有单词边界,这是为了将模式匹配为整个单词而不是某个单词的子串。

输出以下内容:

9989
-23.
An integer: 23
Number 9090 is cool.
22.33 is not a valid integer
-111

它输出22.33,其中22为一个整数,33为另一个整数,忽略'。'之间。但22a33也不会发生这种情况,它并没有忽视角色' a'这里。

我认为问题在于它包含了'。'作为单词边界的一部分,即\ b。所以,在看到22.33时,它会考虑22然后是字边界然后是33.我应该如何解决这个错误?

另外,我需要在最后计算这些比赛的数量。如何使用-o标志作为grep -o来获取所有匹配项,然后运行wc -l

0 个答案:

没有答案