我有一个名为实践其中数字 1、2、3、4、5 位于不同的行中。我想使用 AWK 命令生成这些数字的平方。
为此我编写了以下命令:
awk 'BEGIN { a = $1; a = a ^ 2; print "a =", a }' prac
但输出显示a = 0
请让我知道我的错误
答案1
是的,因为您的代码位于一个BEGIN
块中。特殊BEGIN
块被触发一次,只需前从第一个输入文件读取第一行输入(同样,特殊END
块被触发一次后读取输入的最后一行)。您想要执行您的代码块每个线:
awk '{ printf("a = %s\n", $1*$1) }' prac
或者更接近您的原始代码,
awk '{ a = $1*$1; print "a =", a }' prac