Assuming a file, test2.txt exists with following contents:
pens 10 1.99 pencils 20 3.99 staplers 5 8.99 rulers 12 2.50
Issue the following command:
awk '{print $1,"QTY: "$2,"PRICE: "$3,"TOTAL: "$2*$3}' test2.txt
returns:
pens QTY: 10 PRICE: 1.99 TOTAL: 19.9 pencils QTY: 20 PRICE: 3.99 TOTAL: 79.8 staplers QTY: 5 PRICE: 8.99 TOTAL: 44.95 rulers QTY: 12 PRICE: 2.50 TOTAL: 30
NOTE: The total multiples fields $2 with $3.
AWK supports the full range of arithmetic operators including:
Operator | Details |
---|---|
+ | Adds numbers together. |
- | Subtracts. |
* | Multiples. |
/ | Divides. |
^ | Performs exponential mathematics. |
% | Gives the modulo (remainder). |
++ | Adds one to the value of a variable. |
+= | Assigns the result of an addition operation to a variable. |
– | Subtracts one from a variable. |
-= | Assigns the result of a subtraction operation to a variable. |
*= | Assigns the result of multiplication. |
/= | Assigns the result of division. |
%= | Assigns the result of a modulo operation. |
awk '{x=x+$2} {print x}' test2.txt
returns:
10 30 35 47
NOTE: This assigns a variable named x.
It has shown a running total and calculated an overall total of 47 items.
awk '{x=x+($2*$3)}{print $1,"QTY: "$2,"PRICE: "$3,"TOTAL: "$2*$3,"BAL: "x}' test2.txt
returns:
pens QTY: 10 PRICE: 1.99 TOTAL: 19.9 BAL: 19.9 pencils QTY: 20 PRICE: 3.99 TOTAL: 79.8 BAL: 99.7 staplers QTY: 5 PRICE: 8.99 TOTAL: 44.95 BAL: 144.65 rulers QTY: 12 PRICE: 2.50 TOTAL: 30 BAL: 174.65
NOTE: This lists each record while assigning a total value and keeping a running balance.