【问题标题】:grep positive/negative integer value onlygrep 仅正/负整数值
【发布时间】:2020-02-05 19:56:47
【问题描述】:

我只希望 grep 任何正/负整数,而不是小数,或任何其他变体,包括数字。

我有一个 testpart1.txt,其中有:

This is a test for Part 1
Lets write -1324
Amount: $42.27
Numbers:
       -345,64
067

Phone numbers:

       (111)222-2424

这应该输出以下代码:

This is a test for Part 1
Lets write -1324
067

我是 bash 新手,我找不到如何排除任何用“。”等字符分隔的数字。或者 ','。我可以使用以下代码获取所有数字,但之后我被卡住了:

egrep '[0-9]' testpart1.txt

这与我想要的相反:

grep '[0-9]\.[0-9]' testpart1.txt

【问题讨论】:

    标签: regex linux bash unix grep


    【解决方案1】:

    你可以使用这个grep:

    grep -E '(^|[[:blank:]])[+-]?[0-9]+([[:blank:]]|$)' file
    

    This is a test for Part 1
    Lets write -1324
    067
    

    详情:

    • -E:启用扩展正则表达式匹配
    • (^|[[:blank:]]): 匹配行首或空格或制表符
    • [+-]?:匹配可选+-
    • [0-9]+:匹配 1 个或多个数字
    • ([[:blank:]]|$): 匹配行尾或空格或制表符

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-20
      • 1970-01-01
      • 1970-01-01
      • 2015-10-01
      • 1970-01-01
      • 2021-05-21
      • 2016-07-07
      • 2014-12-18
      相关资源
      最近更新 更多