gpt4 book ai didi

shell - 在文件中打印更大和更小的数字

转载 作者:行者123 更新时间:2023-12-04 16:17:04 25 4
gpt4 key购买 nike

function greater {
grep -Eo '[0-9]*' $1 | sort -rn | head -n 1
}

function lesser {
grep -Eo '\-[0-9]*' $1 | sort -n | head -n 1
}

我已经创建了这些函数,但正在打印负数:第一个函数忽略了 - 符号,因此它显示了最大的数字,但它应该打印最大的正数。关于如何解决这个问题的任何想法?

示例输入:

-100 -90 95
10 -20
500 400 300 200 600

示例输出:

Greater: 600
Lesser: -100

(较小的工作完美。)

最佳答案

我建议不要使用 grep + sort | head 两次,使用 gnu awk 并在单个命令中同时获取 maxmin 会更有效:

awk -v RS='[[:space:]]+' '
NR==1 {max=min=$1}
$1 > max {max=$1}
min > $1 {min=$1}
END {print "max=" max, "min=" min}' file

max=600 min=-100

文件数据在哪里:

cat file

-100 -90 95
10 -20
500 400 300 200 600

或者使用任何版本的awk:

tr '[[:blank:]]' '\n' < file |
awk 'NR==1{max=min=$1} $1 > max {max=$1} min > $1 {min=$1} END {print "max=" max, "min=" min}'

关于shell - 在文件中打印更大和更小的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67676180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com