如何使用 awk 在循环中执行算术运算

这是Linux中用于处理和分析文本文件的强大工具,当您需要在循环内执行算术运算时特别有用。

本文将指导您使用awk对于循环中的算术运算,使用简单的示例来阐明概念。

awk是什么?

awk是一种专为文本处理和数据提取而设计的脚本语言,它逐行读取输入,将每一行拆分为字段,并允许您对这些字段执行操作。它通常用于模式匹配、算术计算和生成格式化报告等任务。

的基本语法awk是:

awk 'BEGIN { initialization } { actions } END { finalization }' file
  • BEGIN:在处理输入之前执行的代码块。
  • actions:为输入的每一行执行的代码块。
  • END:处理完所有行后执行的代码块。

在循环中执行算术运算

我们来探讨一下如何使用awk在循环内执行算术运算,并使用以下有用的示例来演示关键概念。

示例 1:计算数字之和

假设你有一个名为numbers.txt包含以下数字:

5
10
15
20

您可以使用以下方法计算这些数字的总和awk

awk '{ sum += $1 } END { print "Total Sum:", sum }' numbers.txt

解释

  • { sum += $1 }:对于每一行,第一个字段的值$1被添加到变量中sum
  • END { print "Total Sum:", sum }:处理完所有行后,总共sum被打印。
数和计算

示例 2:计算平均值

计算数字的平均值:

awk '{ sum += $1; count++ } END { print "Average:", sum / count }' numbers.txt

解释

  • count++:增加每行的计数器。
  • sum / count:将总和除以计数来计算平均值。
计算一组数字的平均值

例3:九九乘法表

您可以使用awk生成给定数字的乘法表。例如,要生成 5 的表:

awk 'BEGIN { for (i = 1; i <= 10; i++) print "5 x", i, "=", 5 * i }'

解释

  • for (i = 1; i <= 10; i++):从 1 运行到 10 的循环。
  • print "5 x", i, "=", 5 * i:打印乘法表。
awk 的乘法表

示例 4:阶乘计算

要计算数字的阶乘(例如 5):

awk 'BEGIN { n = 5; factorial = 1; for (i = 1; i <= n; i++) factorial *= i; print "Factorial of", n, "is", factorial }'

解释

  • n = 5:计算阶乘的数字。
  • factorial *= i:将阶乘的当前值乘以i在每次迭代中。
阶乘计算示例

示例 5:对偶数求和

仅对文件中的偶数求和:

awk '{ if ($1 % 2 == 0) sum += $1 } END { print "Sum of Even Numbers:", sum }' numbers.txt

解释

  • if ($1 % 2 == 0):检查数字是否为偶数。
  • sum += $1:将偶数添加到总和中。
计算偶数之和
结论

awk命令是用于在循环中执行算术运算的多功能工具。通过组合循环、条件和算术运算符,您可以有效地处理各种任务。

练习这些示例并使用您自己的脚本进行试验,以释放其全部潜力awk

嘿 TechMint 读者,

令人兴奋的消息!每个月,我们的顶级博客评论者都有机会赢得丰厚奖励,例如免费的 Linux 电子书,例如红细胞认证工程师,红十字会协会,LFCS,学习Linux, 和awk, 每个值20 美元

学习!