📅  最后修改于: 2023-12-03 15:07:34.911000             🧑  作者: Mango
该问题主要涉及Linux中的shell脚本编程,并要求解决方案使用awk命令。
给定一个文本文件input.txt
,包含n个整数,每个整数都在1到1000之间。编写一个shell脚本,使用awk命令计算出所有奇数之和、所有偶数之和以及所有数的平均值(保留两位小数),并将结果输出到控制台。
文件input.txt
中包含n个整数,每行只有一个整数。
例如,若input.txt
包含以下内容:
153
312
46
789
276
输出包含一行三个数字,分别代表所有奇数之和、所有偶数之和以及所有数的平均值(保留两位小数)。
例如,若input.txt
包含以下内容:
153
312
46
789
276
则解决方案应输出以下内容:
942 588 315.60
#!/bin/bash
awk '
{
if ($1%2==0)
even+=$1;
else
odd+=$1;
sum+=$1;
}
END {
printf("%d %d %.2f",odd,even,sum/NR);
}' input.txt
解决方案中使用了awk命令进行计算,其中:
if
条件判断用于判断当前数字是奇数还是偶数;odd
、even
和sum
分别用于累加奇数之和、偶数之和和所有数之和;END
部分用于输出相应结果,其中%.2f
表示输出浮点数并保留两位小数。