Linux命令-awk/sort/uniq

AWK的功能是什么?与sed和grep很相似,awk是一种样式扫描与处理工具。但其功能却大大强于sed和grep。awk提供了极其强大的功能:它几乎可以完成grep和sed所能完成的全部工作,同时,它还可以可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。实际上,awk的确拥有自己的语言:awk程序设计语言,awk的三位创建者已将它正式定义为:样式扫描和处理语言。

 

语法:

awk [-F re] [parameter...] ['prog'] [-f progfile] [in_file...]

-F re:允许更改字段分隔符

parameter:为变量赋值

'prog':awk的程序语句段,标准格式'pattern {action}',可以省略之一,省略pattern表示没有样式匹配,省略action标准输出

pattern:可以使用语法/re/加上样式匹配技巧

{action}:总是被大括号包围,各语句之间用分号;分隔

-f progfile:progfile文件,符合awk语法

in_file:awk的输入文件

 

约定:

1)1,2,3...这样的方式来表示记录中不同的字段,0表示整行

2)RS:分隔符变量,NR:当前工作的记录数

 

举例: 

1)第2行到5行中,以%分隔的1、3、5字段值

awk -F % 'NR==2,NR==5 {print $1 $3 $5}' test 

 

 2)在vmstat监控数据,加上时间显示

vmstat -n 5 | awk '{ printf "%s\t",$0; system("date +\"[%F %T\"]"); }' 

vmstat -n 5 | awk '{print strftime("[%Y-%m-%d %H:%M:%S]"),$0}' 

 

3)查询某个时间段访问最频繁的URL请求

cat 2012-05-25-taobao-access_log |grep '2012:05:25:15:1' |awk -F\| '{print $9}'|sort -rn |uniq -c |sort -rn |more 

 

4)nestat查看连接:

netstat -nat | awk '{print $6}' | sort | uniq -c | sort -rn 

netstat -anp | awk '{print $4}' | sort -rn | uniq -c|sort -rn |more 

 

sort----------------------

-n, --numeric-sort          compare according to string numerical value

-r, --reverse               reverse the result of comparisons

-k, --key=POS1[,POS2]     start a key at POS1, end it at POS2 (origin 1),排序关键列

 

 

猜你喜欢

转载自mingren135.iteye.com/blog/1859724