awk基本用法

跟風遠走 提交于 2020-01-11 23:03:19

awk

cat /etc/passwd| awk -F: '{print}'  默认全部字段,即列
cat /etc/passwd| awk -F: '{print $1,$3}'  以:为分隔符取1,3列
cat /etc/passwd| awk -F: '{print $1"\t"$3}' 以:为分隔符取1,3列并且以tab建隔开
df | awk -F"[[:space:]]+|%" '/^\/dev\/sd/{print $5}' 取分区利用率
cat /etc/Passwd| awk -F":" -v OFS=" " '/\<0\>/,/\<50\>/{print $1,$NF}'以:为分隔符取0-50uid用户的shell并以空格隔开

统计/etc/fstab文件中每个文件系统类型出现的次数

cat /etc/fstab |awk -F" " '/^UUID/{print $3}'|sort|uniq -c

统计/etc/fstab文件中每个单词出现的次数

cat /etc/fstab |grep -o '\<[a-z]\+\>'|sort |uniq -c |sort -nr

提取出字符串Yd$C@M05MB%9&Bdh7dq+YVixp3vpw中的所有数字

echo "Yd$C@M05MB%9&Bdh7dq+YVixp3vpw" |grep -o [0-9]|xargs

找出ip连接次数大于3的用户并拒绝访问

systemctl enable --now firewalld
while true ;do
ss -nt|awk -F" " '/^ESTAB/{print $(NF)}'|awk -F":" '{print $1}' |sort |uniq -c |while read ccdd iipp ;do
   if [ $ccdd -gt  2 ] ;then
iptables -A INPUT -s $iipp -j REJECT
  fi 
done
sleep 20
done

将jj文件内容中FQDN取出并根据其进行计数从高到低排序

cat jj |awk -F"/" '{print $3}' |sort |uniq -c|sort -nr
**与&&  cat /etc/passwd |awk -F":" '$3>100 && $3<1000{print $1,$3}'||  cat /etc/passwd |awk -F":" '$3==0 || $3==1000{print $1,$3 }'
非!  cat /etc/passwd |awk -F":" '!($3==0){print $1,$3 }'

Awk If语法

awk -F":" '{if($3>=1000)print $1,$3}' /etc/passwd 
cat /etc/passwd | awk -F":" '{if($NF=="/bin/bash")print $1,$NF}
cat /etc/fstab |awk '/^UU/{if(NF>5)print $2,$3}'
df -h|awk -F"[[:space:]]+|%" '/\/dev/{if($5>80)print $5}'
awk 'BEGIN{t=100;if(t>80)print "very good"}'
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!