gpt4 book ai didi

linux - Bash 脚本 : max, min,sum - 许多来源作为参数

转载 作者:太空宇宙 更新时间:2023-11-04 04:38:16 25 4
gpt4 key购买 nike

是否可以编写一个脚本来读取包含数字的文件(每行一个)并写入它们的最大值、最小值和总和。如果文件为空,它将打印一条适当的消息。文件名将作为脚本的参数给出。我设法创建以下脚本,但有两个错误:

./4.3: line 20: syntax error near unexpected token `done'
./4.3: line 20: `done echo "Max: $max" '

是否可以添加多个文件作为参数?

lines=`cat "$1" | wc -l` 
if [ $lines -eq 0 ];
then echo "File $1 is empty!"
exit fi min=`cat "$1" | head -n 1`
max=$min sum=0
while [ $lines -gt 0 ];
do num=`cat "$1" |
tail -n $lines`
if [ $num -gt $max ];
then max=$num
elif [ $num -lt $min ];
then min=$num fiS
sum=$[ $sum + $num] lines=$[ $lines - 1 ]
done echo "Max: $max"
echo "Min: number $min"
echo "Sum: $sum"

最佳答案

这里对 GNU datamash 的使用非常引人注目:

read sum min max < <( datamash  sum 1 min 1 max 1 < "$1" )
[[ -z $sum ]] && echo "file is empty"
echo "sum=$sum; min=$min; max=$max"

或者,排序并 awk:

sort -n "$1" | awk '
NR == 1 { min = $1 }
{ sum += $1 }
END {
if (NR == 0) {
print "file is empty"
} else {
print "min=" min
print "max=" $1
print "sum=" sum
}
}
'

关于linux - Bash 脚本 : max, min,sum - 许多来源作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55872718/

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