sed & awk 书中有一个实例,用来按州名归类显示用户
许多朋友对LastState变量有疑问
这里有一个知识点:awk中对变量使用之前是不用先赋值的.
[t@bjb0541 tmp]$ vim awklaststate.sh
- #!/usr/bin/env bash
- awk '{print $1 " " $0 }' $* | \
- sort | \
- awk \
- '$1 == LastState {\
- print "\t" $3\
- } \
- $1 != LastState {\
- LastState = $1 #重点是这一句,之前使用LastState并没有事先赋值
- print $1 "\t" $3}'
- [t@bjb0541 tmp]$ cat laststate
- A 134134
- B 14514
- C 1351431
- A 425245235
- A 14143132
- C 13141242
- C 2134414124
- [t@bjb0541 tmp]$ ./awklaststate.sh laststate
-
- A 134134
- 14143132
- 425245235
- B 14514
- C 13141242
- 1351431
- 2134414124