1.去除一个文件当中重复的行,并且不改变顺序,文件内容如下
a
bb
ccc
a
bbccc
d
11
22
使用awk命令进行去重
cat test.txt | awk '!line[$0]++' > test3.txt
2.判定数组索引元素是否存在
awk 'BEGIN{array["i"]="x";array["j"]="y";print "i" in array;print "x" in array}'
3.统计主机的连接状态
ss -ant | awk 'NR!=1{state[$1]++}END{for(i in state){print i,state[i]}}'
或者
ss -ant | awk 'NR!=1{print $1}' | sort | uniq -c
4.获取ip地址
ifconfig eth1 | awk -F '[ ]+' 'NR==2{print $3}'
4.awk 常见函数
- length:返回字符串的长度
- sub(r,s,[t]):对字符串t,搜索r表示匹配内容,并将第一个匹配的内容替换为s
- gsub(r,s[t]:对字符串t,搜索r表示匹配内容,并全部替换为s
- split(s,array,[r]):以r为分隔符,并且切分后的结果保存到array当中,第一个索引值为1,第二个索引值为2。
示列
echo '2008:08:08 08:08:08' | awk '{sub(/:/,"-",$1); print $0}'echo '2008:08:08 08:08:08' | awk '{gsub(/:/,"-",$0); print $0}'netstat -nltp | awk '/^tcp\>/{split($5,ip,":");count[ip[1]]++}END{for(i in count){print i,count[i]}}'