awk—以行和列为单位操作字符串(抽取)

格式:

       awk  [option]  ‘awk_script’ input_file1 [input_file2  ...]   

       awk ‘BEGIN { actions }  awk_pattern1 { actions }.....awk_patternN  { actions } END

{ actions }’  input_file   

       其中BEGIN { actions } END { actions }是可选的。

image.png


#把源修改成目录对哪些进行修改

ls $file_path/*.jpg|awk -F '_ddl' '{print "mv" " " $0 " " $1".jpg"}'|bash    #删除名字字段

ls $file_path/*.jpg|awk -F '.jpg' '{print "mv" " " $0 " " $1"_ddl.jpg"}'|bash #增加名字字段


#查看http的并发请求数及其TCP连接状态:

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'


#统计服务器连接数的状态

netstat -an | awk '/^tcp/ {++S[$NF]} END {for (a in S) print a,S[a]}'

netstat -an | awk '/^tcp/ {print $6}'|sort |uniq -c|sort -nr

ss -an | awk '{print $2}'|sort|uniq -c |sort

ss -n|awk '/^tcp/{++s[$2]}END{for (i in s) print s[i],i}'


#统计所有到80端口的ESTABLISHED状态链接的个数

netstat -an|grep 'ESTABLISHED'|grep '80'|awk '/^tcp/ {print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr


#查看IP连接数

netstat -n | awk '/^tcp/ {print $5}'| awk -F: '{print $1}' | sort | uniq -c | sort -rn

netstat -an|awk '/^tcp/{print $5}'|awk -F: '{++s[$1]}END{for (i in s) print s[i],i}'


#统计apache日志文件(access_log)中某一天中每个URL的访问次数

awk '{print $11}' access_log|sort|uniq -c|sort -n


#用tcpdump嗅探80端口的访问看看谁最高

tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -20


猜你喜欢

转载自blog.51cto.com/9625010/2480504