在Linux bash脚本中,你可以使用awk
命令来处理数字数据的变量行,并将其汇总为两个单独的变量。以下是一个示例脚本,它读取一个包含数字的文件,并计算所有数字的总和和平均值,然后将这两个值分别赋给两个变量并打印出来。
#!/bin/bash
# 假设我们有一个名为numbers.txt的文件,其中包含了一系列的数字,每行一个
file="numbers.txt"
# 使用awk计算总和和数量
sum=$(awk '{s+=$1} END {print s}' "$file")
count=$(wc -l < "$file")
# 计算平均值
average=$(echo "scale=2; $sum / $count" | bc)
# 打印结果
echo "总和: $sum"
echo "平均值: $average"
在这个脚本中:
awk '{s+=$1} END {print s}' "$file"
读取文件的每一行,并将每行的第一个字段(数字)累加到变量s
中,最后打印出总和。wc -l < "$file"
计算文件中的行数,即数字的数量。echo "scale=2; $sum / $count" | bc
使用bc
命令进行浮点数除法,计算平均值,并保留两位小数。这个脚本假设文件中的每一行都包含一个有效的数字。如果文件中可能包含非数字字符,你需要在awk
命令中添加额外的逻辑来处理这些情况。
参考链接:
请确保你的bash脚本具有执行权限,可以通过运行chmod +x script_name.sh
来设置。然后,你可以通过./script_name.sh
来执行脚本。
领取专属 10元无门槛券
手把手带您无忧上云