awk中引用shell的变量
在awk中引用shell的变量有两种办法:
- 一个是用双引号和单引号包含变量,如:"'var'";
- 另为一种就是使用awk的-v参数提前声明,如:awk -v var="$var";
例如:
$ cat text.txt a,1 a,2 b,3 b,4 c,2 d,5 $ for i in `cat text.txt |cut -d, -f1|sort|uniq` > do > grep -E ^$i text.txt |awk -F ',' '{sum+=$2} \ END {print "'$i'" " Count: " NR ", Sum: " sum ", Average: " sum/NR}' > done a Count: 2, Sum: 3, Average: 1.5 b Count: 2, Sum: 7, Average: 3.5 c Count: 1, Sum: 2, Average: 2 d Count: 1, Sum: 5, Average: 5 $ #or $ for i in `cat text.txt |cut -d, -f1|sort|uniq` > do > grep -E ^$i text.txt |awk -v i="$i" -F ',' '{sum+=$2} \ END {print i " Count: " NR ", Sum: " sum ", Average: " sum/NR}' > done