前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux常用命令:awk

Linux常用命令:awk

作者头像
以谁为师
发布2019-05-28 22:57:02
1.3K0
发布2019-05-28 22:57:02
举报

Linux常用命令:awk

显示指定行

代码语言:javascript
复制
cat /proc/meminfo |awk  'NR==1'
#显示第一行
awk '/^[0-9]/ && NR==1  {print $1}' /data/hostlist
# 过来数字开头而且是第一行,打印第一列;&&和||或
ifconfig |awk '/netmask/ && !/127/  {print $2}'
# 匹配netmask 并匹配非127

分隔显示

代码语言:javascript
复制
cat /proc/meminfo |awk  'NR==1'|awk '{print $2}'
#显示第二列

curl -s --head "ops.attacker.club"|awk  '/HTTP/ {print $2}'
#过滤关键字‘HTTP’的行并将第二列内容打印出来

正则

代码语言:javascript
复制
awk  -F= '/^DEV/ {print "网卡"$2}' /etc/sysconfig/network-scripts/ifcfg-eth0 
#正则搜索DEV大头的行,打印第二列网卡名

route  -n | awk '$3~/252.0$/{print $1}'|uniq
#正则匹配第三列掩码是252.0则打印第一列网络地址

docker images | awk  '/rancher/||/busybox/  {print $3}'| xargs  docker rmi
#删除包含rancher或者busybox的容器id

ip add |grep -vw lo |awk -F '[ /]+'  '/inet/ {print $3}'
#[空格:]多分隔符写法,以空格或冒号做分隔;"+"号是正则表达式,意思是匹配前面空格或冒号,两者之一的1个或1个以上。

awk '/ldb/ {print}' f.txt   #匹配ldb
awk '!/ldb/ {print}' f.txt  #不匹配ldb
awk '/ldb/ && /LISTEN/ {print}' f.txt   #匹配ldb和LISTEN
awk '$5 ~ /ldb/ {print}' f.txt #第五列匹配ldb

高级玩法

代码语言:javascript
复制
awk -F: '$3>=1000 {print $1}' /etc/passwd
#第三列值大于等于1000则打印passwd第一列的用户名
awk -F:  'length($3)==2 {print $1}' /etc/passwd
#第三列字符串是2位长度的,打印第一列用户名信息
#;查看是否存在空口令帐户
awk -F\: '{system("passwd -S "$1)}' /etc/passwd|awk '{print $1,$3}'
#用system和bash执行命令;查看账户创建日期
awk -F\: '{system("passwd -S "$1)}' /etc/passwd|awk '{print $1,$3}'
#同上
#过滤登录失败的ip地址,awk if如果第一列数字有8次以上则打印第二列ip信息
awk '$1> 8 {print $2}'
#同上,效果
grep Failed /var/log/secure |egrep -o '[0-9]{1,3}(\.[0-9]{1,3}){3}' |sort |uniq -c|sort -nr | awk '{if($1 > 8) print $2}'

grep Failed /var/log/secure |egrep -o '[0-9]{1,3}(\.[0-9]{1,3}){3}' |sort |uniq -c|sort -nr | awk '{if($1 > 8) print $2}' 
代码语言:javascript
复制
#[0-9]{1,3}(\.[0-9]{1,3}){3}
[0-9]{1,3}:1-3位数字
\.[0-9]{1,3}:小数点.后跟1-3位数字
(...){3}:前面括号中的组合重复3次
正则表达式中:
.表示“单个任意字符”
\.表示“小数点”
关于IP地址,再提供一种更精确的写法:
\d表示“单个任意数字”
((\d{1,3})\.){3}(\d{1,3}):与你的式子基本等价
![\.\d]):后面不能有.或数字
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年3月1日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Linux常用命令:awk
  • 显示指定行
  • 分隔显示
  • 正则
  • 高级玩法
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档