awk

Assignment Operators

就像大多数其他的编程语言,awk使用=作为赋值运算符。像c, awk还支持快捷赋什运算符修改一个变量,而不是取代它的值。

Operator Description
= Assignment
+= Shortcut addition assignment
-= Shortcut subtraction assignment
*= Shortcut multiplication assignment
/= Shortcut division assignment
%= Shortcut modulo division assignment

下面的例子显示如何使用赋值操作:

$ cat assignment.awk
BEGIN {
    FS=",";
    OFS=",";
    total1 = total2 = total3 = total4 = total5 = 10;
    total1 += 5; print total1;
    total2 -= 5; print total2;
    total3 *= 5; print total3;
    total4 /= 5; print total4;
    total5 %= 5; print total5;
}

$ awk -f assignment.awk
15
5
50
2
0

下面的示例例用+=快捷赋值操作

$ awk -F, 'BEGIN { total = 0} { total +=$5 } END {print "Total Quantity: " total }' items.txt
Total Quantity: 52

下一个示例计算在一个文件中的字段总数。awk脚本匹配所有行并保持累计每一行字段数使用快捷加赋值操作。字段数保存在一个名为total的变量里。一次输入文件被处理,end块被执行,打印字段总数。

$ awk -F ',' 'BEGIN { total = 0 } {total += NF } END { print total }' items.txt
25