我想获取一个标准输出流并将其过滤为仅保存大于 100 的值而不使用 awk
.我有一堆其他的 unix 命令通过管道连接在一起,这导致了各种数字的 stdout 流。我想将任何大于 99 的数字传递到文件中。我想象这样的东西:
several commands | unix-tool 100 > stdout_that_is_>99
似乎这应该是微不足道的,我错过了一些东西。谢谢!
您可以将 grep 与正则表达式一起使用来匹配任何 3+ 位数字,例如:
command | grep '[1-9][0-9]{2}' >"stdout_that_is_>99"
这将很容易适应任何数量级的工作。
gefilt() {
while read num; do
if (( $num+0 >= $1 )); then
echo $num
fi
done
}
several commands | gefilt 100