2014-02-18 69 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