AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。
AWK用法
awk 用法:awk ' pattern {action} ' files
1.RS, ORS, FS, OFS ,NF, NR用法
通常,awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本
RS用法
[root@localhost ~]# echo "1a2a3a4"|awk 'BEGIN{RS="a"}{print $0}'
1
2
3
4
ORS用法,ORS可以看成RS的逆向过程
例如:1.txt
[root@localhost ~]# cat 1.txt
a
b
c
[root@localhost ~]# awk 'BEGIN{ORS="---"}{print $0}' 1.txt
a---b---c---
FS的用法
[root@localhost ~]# awk 'BEGIN{FS=":"}{print $1,$2}' /etc/passwd
root x
bin x
daemon x
adm x
lp x
sync x
shutdown x
halt x
OFS RS与ORS可以说成是一个互逆的过程
[root@localhost ~]# awk 'BEGIN{FS=":";OFS="***"}{print $1,$2}' /etc/passwd
root***x
bin***x
daemon***x
adm***x
lp***x
sync***x
shutdown***x
halt***x
mail***x
operator***x
统计ip访问前10的nginx 访问日志
awk '{print $1}' access.log |sort |uniq -c |sort -k1 -nr |head -n10