我有一个包含列中数字的文件:
[root@server1]# cat numbers.txt
30
25
15
我需要将它们添加到一起,所以我这样做:
[root@autonoc cattests]# cat numbers.txt | paste -s -d+ | bc
70
但是在我将它们加在一起后,我需要将它们除以60,就像这样:
[root@server1]# cat numbers.txt | paste -s -d+ | "new command" | bc
我怎样才能做到这一点?
bc -l <<< '('$(paste -s -d+ numbers.txt)')/60'
使用awk:
$ awk '{s+=$1} END{print s/60}' numbers.txt
1.16667
s+=$1
numbers.txt
每个留置权的数字被添加到变量s
。END{print s/60}
读完文件后,我们打印s
的值除以60。awk -v div=60 '{tot+=$0}END{print tot/div}' numbers.txt
使用-v div=60
可以进一步扩展以接受任何用户输入,例如
read -p "Enter the div value: " div
awk -v div="$div" ...
非常紧张
你可以使用dc
dc -f numbers.txt -e '++3k60/[result = ]np'