2014-02-18 112 views
0

我想采取一个标准输出流并过滤它只保存大于100的值,而不使用awk。我有一堆其他unix命令一起管理,这导致了各种数字的标准输出流。我想将大于99的任何数字传入文件。我像这样的事情:如何通过数字约束来过滤UNIX标准输出?

several commands | unix-tool 100 > stdout_that_is_>99

看起来这应该是微不足道的,而且我失去了一些东西。谢谢!

+0

它是> 99或> 100,> 100是棘手... – Graeme

+0

这是> 99,但最好我想,通过任何给定的约束 – jake9115

回答

2

你可以只使用grep与正则表达式匹配任何3+位数字,如:

command | grep '[1-9][0-9]\{2\}' >"stdout_that_is_>99" 

这将是很容易适应的大小任意才能工作。

+0

智能过滤答案的解决方案,我喜欢它的灵活性 – jake9115

1
gefilt() { 
    while read num; do 
     if (($num+0 >= $1)); then 
      echo $num 
     fi 
    done 
} 

several commands | gefilt 100