awk

Arithmetic Operators

接受两个操作数的运算符称为二元运行符。 有各种不同二元运算符,基于使用归类(算术,字符串,指派,等等)

下面的运算符用于执行算术计算。

Operator Description
+ Addition
- Subtraction
* Multiplication
/ Division
% Modulo Division

下面的例子显示二元运算符+,-,*和/的使用: 下面例子做两件事: 1. 降低每个项目价格20%

2. 除低每个项目的数量(1).

创建和运行arithmetic awk例子:

$ vi items.txt
101,HD Camcorder,Video,210,10
102,Refrigerator,Appliance,850,2
103,MP3 Player,Audio,270,15
104,Tennis Racket,Sports,190,20
105,Laser Printer,Office,475,5
$ vi arithmetic.awk
BEGIN {
    FS=",";
    OFS=",";
    item_discount=0;
    }
{
item_discount=$4*20/100;
print $1,$2,$3,$4-item_discount,$5-1
}

$ awk -f arithmetic.awk items.txt
101,HD Camcorder,Video,168,9
102,Refrigerator,Appliance,680,1
103,MP3 Player,Audio,216,14
104,Tennis Racket,Sports,152,19
105,Laser Printer,Office,380,4

下面的例子是从输入文件打印所有偶数行。每一行的行号被检查,看它是否是2的倍数,如果是这样,默认操作被执行(打印整个行)。 演示取余:

$ awk 'NR % 2 ==0' items.txt
102,Refrigerator,Appliance,850,2
104,Tennis Racket,Sports,190,20