awk练习

文章展示了如何使用awk命令在Linux环境中筛选特定文件的内容,包括从/proc/meminfo中查找特定模式的行,筛选/etc/passwd中的bash用户,查找/etc/init.d/functions中的括号,获取当前目录,统计/etc/passwd中shell的种类,以及从网络配置中提取ipv4地址。
摘要由CSDN通过智能技术生成

筛选/proc/meminfo中第一列中以大写字母A开头e结尾的行

awk -F: '$1~/^A.*e$/{print $0}' /proc/meminfo 

筛选/etc/passwd中以bash结尾的行

awk '/(bash)$/{print $0}' /etc/passwd

筛选/etc/init.d/function中带有()的行

cat -n /etc/init.d/functions | awk '/\(.*\)/{print $0}'

注意需要对()进行转义

输出pwd下的当前目录名

pwd | awk -F/ '{print NF}'

输出/etc/passwd下每种shell的数量

cat /etc/passwd | awk -F/ '{print $NF}' | sort | uniq  -c

输出ip a中ens33的ipv4地址

ip a | awk 'BEGIN{j=0}{for(i=1;i<NF;i++){if($i~'/ens33/'){j=1}if($i~'/^inet$/'&&j==1){print $(i+1)}}}' | awk -F/ '{print $1}'

首先for循环把除空格外的所有字符串取出,然后定义j,当循环遍历到ens33后就将j=1,当j=1并且匹配到inet字符串后便输出下一个字符串,然后去除该字符串的端口号即可

筛选一个文件中带有空格的行

awk '{if(NF>1){print $0}}' test.txt

查看/etc/目录下共有多少个root字段

ll /etc/ | awk 'BEGIN{i=0}{for(j=1;j<NF;j++){if($j=="root"){i++}}}END{print i}'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值