awk使用方法详解

本文深入介绍了awk工具的使用方法,包括如何按行和字段处理文本,如输出特定行、统计行数、提取字段信息,以及通过管道调用Shell命令等。awk的特殊内置变量如FS、NF、NR等也在文中提及。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

awk工具

awk 选项 ‘模式或条件{编辑命令}’ 文件1 文件2…. //过滤并输出文件中符合条件的内容

awk -f 脚本文件 文件1 文件2… //从脚本中调用的编辑指令,过滤并输出内容

awk包含几个特殊的内建变量(可直接用)如下所示:

FS:指定每行文本的字段分隔符,默认为空格或制表位;
NF:当前处理的行的字段个数;
NR:当前处理的行的行号(序数);
$0:当前处理的行的整行内容;
$n:当前处理的行的第n个字段(第n列);
FILENAME:被处理的文件名;
RS:数据记录分隔,默认为\n,即每行为一条记录。

1、按行输出文本
1.1输出所有内容,等同于cat test.txt

awk ‘{print}’ test.txt

1.2输出所有内容,等同于cat test.txt

awk ‘{print $0}’ test.txt

1.3输出第1~3行内容

awk ‘NR1,NR3{print}’ test.txt

1.4输出第1~3行内容

awk ‘(NR>=1)&&(NR<=3){print}’ test.txt

1.5输出第1行,第3行的内容

awk ‘NR1||NR3{print}’ test.txt

1.6输出所有奇数行的内容

awk ‘(NR%2)==1{print}’ test.txt

1.7输出所有偶数行的内容

awk ‘(NR%2)==0{print}’ test.txt

1.8输出以root开头的行

awk ‘/^root/{print}’ /etc/passwd

1.9输出以nologin结尾的行

awk ‘/nologin$/{print}’ /etc/passwd

1.10统计以/bin/bash结尾的行数,等同于grep –c “/bin/bash$” /etc/passwd

awk ‘BEGIN {x=0};//bin/bash$/{x++};END {print x}’ /etc/passwd

1.11统计以空行分隔的文本段落数

awk ‘BEGIN {RS=””} ;END{print NR}’ test.txt

2按字段输出文本
2.1输出每行中(以空格或制表符分隔)的第三个字段

awk ‘{print $3}’ test.txt

2.2输出每行中第1,3个字段

awk ‘{print $1,$3}’ test.txt

2.3输出密码为空的用户的shadow记录

awk -F ”:” ‘$2==””{print}’ /etc/shadow

2.4输出密码为空的用户的shadow记录

awk ‘BEGIN {FS=”:”} ; $2==””{print}’ /etc/shadow

2.5输出以冒号分隔且第7个字段中包含/bash的行的第一个字段

awk -F ”:” ‘$7~”/bash”{print $1}’ /etc/shadow

2.6输出包含8个字段且第一个字段中包含nfs的行的第1,2个字段

awk ‘($1~”nfs”)&&(NF==8){print $1,$2}’ /etc/services

2.7输出第七个字段既不为/bin/bash也不为/sbin/nologin的所有行

awk -F “:” ‘($7 != “/bin/bash”)&&($7 != “/sbin/nologin”){print}’ /etc/passwd

3通过管道、双引号调用Shell命令
3.1调用wc –l命令统计使用bash的用户的个数,等同于grep –c “bash$ ” /etc/passwd

awk -F: ‘/bash $/{print | “wc -l”}’ /etc/passwd

3.2调用w命令,并用来统计在线用户数

awk ‘BEGIN {while (“w” | getline) n++ ; {print n-2}}’

3.3.调用hostname,并输出当前主机名

awk ‘BEGIN {“hostname” | getline ; print $0}’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值