linux的awk命令

本文详细介绍了awk命令的使用,包括按行号查找(NR)、字符匹配、列选择、字段分割(F)、列信息处理、字符串替换(gsub)、BEGIN和END块的功能,以及加法运算的应用。通过实例展示了awk在数据查询、统计和处理中的强大能力。
摘要由CSDN通过智能技术生成

1. 解释

作用特点
排除信息
查询信息
统计信息
替换信息
语法格式:
awk [参数] ‘模式-动作’ 文件

2. 案例

2.1 NR 按照行号进行查找

awk 'NR==2' yang.txt 

多行,连续

awk 'NR==2,NR==6' yang.txt

不连续

awk 'NR==2;NR==6' yang.txt

注意NR后边是两个等号

2.2 // 按照字符进行查找

awk '/yang/' yang.txt
awk '/yang/,/yu/' yang.txt
awk '/yang/;/yu/' yang.txt

2.3 显示xiaohu的姓氏和id号码 $进行取列

awk '/Xiaoyu/{print $1","$3}' yang.txt
awk '/Xiaoyu/{print $1,$3}' yang.txt

显示最后一列

awk '/Zhang/{print $NF}' yang.txt

2.4 -F 分割

分割:-F “:” 以:分隔符进行分割

 awk '/Zhang/{print $NF}' awk_test.txt|awk -F ":" '{print $3}'
 
冒号空格进行分割
awk -F "[ :]+" '/^Zhang/{print $1,$2,$5}' awk_test.txt 
awk -F "[ :]+" '/^Zhang/{print $1,$2,$(NF-1)}' awk_test.txt 

2.5 案列对列的详细信息

显示所有以41开头的ID号码的人的全名和ID号码

awk '$3~/^41/{print $1,$2,$3}' yang.txt

显示所有ID号码最后一位数字是1或5的人的全名
awk '$3~/[15]$/{print $1,$2}' awk_test.txt|column -t

awk '$3~/[15]$/{print $1,$2}' awk_test.txt|column -t

awk '$3~/(1|5)$/{print $1,$2}' awk_test.txt|column -t

2.6 替换gsub

显示Xiaoyu的捐款,每个捐款数值前面都有以$开头, 如$110$220$330
gsub(/需要替换的信息/,"修改成什么信息",将哪列信息进行修改)

awk '$2~/Xiaoyu/{gsub(/:/,"$",$NF);print $NF}' awk_test.txt 
排除空行
rep -Ev "^#|^$"  文件信息 
sed -n '/^#|^$/!p' 文件信息
awk '/^#|^$/'

2.7 begin() 执行命令之前做什么

awk 'BEGIN{print "姓","名","QQ号","捐款记录"}{print $0}' awk_test.txt |column -t
修改内置分隔符变量
	awk -F ":" '{print $2}' awk_test.txt

2.8 END{} 在awk执行命令结束之后做的操作

awk 'BEGIN{print "姓","名","QQ号","捐款记录"}{print $0}END{print "操作结束"}' awk_test.txt |column -t 

2.9 加法

普通用户数量
awk '$NF~/bash/{i=i+1}END{print i}' /etc/passwd
虚拟用户数量
awk '$NF!~/bash/{i=i+1}END{print i}' /etc/passwd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长安有故里y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值