linux 三剑客之awk总结

AWK

1.begin end使用

cat /tmp/passwd |awk -F ':' 'BEGIN {print "hello"} {print $1" "$3} END {print "ending"}'

2.匹配

[root@zeus tmp]# cat /tmp/passwd |awk -F ':' 'BEGIN {print "hello"} /root/{print $1" "$3} END {print $2}'     

hello

root    0

operator        11

x

3.printf

[root@zeus tmp]# cat /tmp/passwd |awk -F ':' '/root/{printf("%s %s %s ",NR,$1,$2)}'

1 root x

10 operator x

4.变量:

[root@zeus tmp]# ls -l|awk 'BEGIN {row=0;} {row++;} END {printf("total: %s ",row)}'

total:  24

5.判断

[root@zeus tmp]# ls -l|awk 'BEGIN {row=0;} {print $3;if($3=="root"){row++;}} END {printf("total: %s ",row)}'

6.循环

awk -F ':' 'BEGIN {count=0;} {name[count] = $1;count++;}; END{for (i = 0; i < NR; i++) print i, name[i]}' /etc/passwd

原文地址:https://www.cnblogs.com/langyao/p/11062819.html