【问题标题】:How to grep rows that have value less than or equal to value如何grep值小于或等于值的行
【发布时间】:2015-04-18 09:54:57
【问题描述】:
size=139
size=9292
size=140
size=139
size=139
size=10213
size=139
size=140
size=11186
size=139
size=139
size=140
size=12342
size=139
size=139
size=140
size=11360

如何从 size.txt 中 grep 值大于 1000 的行?

另外,有什么方法可以从整个文件夹中找到这些信息,其中有很多这样的txt文件?

【问题讨论】:

    标签: linux shell unix awk grep


    【解决方案1】:

    使用 awk:

    awk -F= '$2 > 1000' filename
    

    这可以与许多文件名一起使用:

    awk -F= '$2 > 1000' *
    

    或结合find 也可以对子文件夹执行此操作:

    find directory -type f -exec awk -F= '$2 > 1000' '{}' \;
    

    对于后两者,可能需要打印文件名以及实际结果(模仿grep 的行为),可以这样实现:

    awk -F= '$2 > 1000 { print FILENAME ": " $0 }' *
    

    【讨论】:

      【解决方案2】:

      使用 bash 内置命令:

      while IFS="=" read variable value; do
        [[ $value -gt 1000 ]] && echo "${variable}=${value}"
      done < file
      

      输出:

      大小=9292 大小=10213 大小=11186 大小=12342 大小=11360

      【讨论】:

        【解决方案3】:
        egrep "size=[0-9]{4}" size.txt
        

        【讨论】:

        • 这将匹配size=0001
        • egrep "[1-9][0-9]{3}" | grep -v "=1000$"
        猜你喜欢
        • 2016-09-30
        • 1970-01-01
        • 1970-01-01
        • 2017-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多