awk 第二部分
![](https://i-blog.csdnimg.cn/blog_migrate/e50473f0104da3422615546d1fb959bc.jpeg)
实操
awk '$0~/good|glad/' test 根据匹配条件选择指定行
awk '{if($0~/good|glad/) print $0}' test 效果同上
awk '{if($0~/goo+) print $0}' test 匹配goo加后面若干字符
awk '{if($0~/goo?/) print $0}' test 匹配前面的字符0个或者1个
awk '{if($0~/goo*/) print $0}' test 匹配前面的字符无限多个
awk条件操作符
![](https://i-blog.csdnimg.cn/blog_migrate/928f9f8db1a6ad396c344cfbb63ff026.jpeg)
实操
awk '{if($0!~/goo?/) print $0}' test 不匹配 含有goo开头的内容
ll /var|tail|tee llvar
cat -n llvar
awk '{if($5==1024) print $0}' test 查找字节数等于1024的行内容
cat -n llvar
awk '{if($2<9) print $0}' llvar |cat -n 查找链接数小于9的行内容
awk '{if($2>=9 && $9~/o/)}' 查找第二个域大于等于9且第九个域内容中含有o的行内容
awk内置变量
![](https://i-blog.csdnimg.cn/blog_migrate/b08bff794fc150e8a8d4ea35ac2f8db5.jpeg)
awk '{print NF,NR,$NF,$0,FILENAME}' test
awk '{print NF,NR,$NF,$0}END{print "=========";print FILENAME}' /tmp/test
awk 'BEGIN{FS=":"}{print NF,NR,$NF,$0}END{print FILENAME}' /etc/passwd 这里指定分隔符为冒号