我有一个包含以下内容的文件:
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