- 命令解析:1
命令:
awk -F ':' '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF ",linecontent:"$0}'/etc/passwd |head -n 100
1>. -F ‘:’ 指定使用“:”分割文件中的每一行,默认使用空格分隔
2>. '{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF ",linecontent:"$0}’
print: 输入匹配到的信息,固定参数如下:
ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行 -F选项
NF 浏览记录的域的个数
NR 已读的记录数
OFS 输出域分隔符
ORS 输出记录分隔符
RS 控制记录分隔符
3>. $0: 表示打印出获取到的整行内容,$1表示打印分割后的第一个,$n表示打印分割后的第n个
4>. head -n 100: 输出查询到的前100行数据
- 命令解析:2
命令:
awk '{print $1}’ filename | sort | uniq -c | sort -nr -k1 | head -n 100
1>. 统计文件中,ip访问次数最多的100个
2>. sort:对IP部分进行排序。
3>. uniq -c:打印每一重复行出现的次数。(并去掉重复行)
4>. sort -nr -k1:按照重复行出现的次序倒序排列,-k1以第一列为标准排序。
5>. head -n 10:取排在前5位的IP 。