AIX下AWK语言的内置变量

本文深入探讨了awk内置变量的使用,包括记录个数、域个数、文件名等,通过实例展示了如何利用这些变量进行数据筛选和输出格式化,并介绍了如何获取当前目录名、文件名及后缀。

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

awk内置变量
awk有许多内置变量用来设置环境信息,可修改;下表是一些常用的内置变量及其含义:
——————————————————————————————————————————————
ARGC		命令行参数个数
ARGV		命令行参数排列
ENVIRON		支持队列中系统环境变量的使用
FILENAME	awk浏览的文件名
FNR		浏览文件的记录数
FS		设置输入域分隔符,等价于命令行-F选项
NF		浏览记录的域个数
NR		已读的记录数
OFS		输出域分隔符
ORS		输出记录分隔符
RS		控制记录分隔符
——————————————————————————————————————————————
记录个数:
awk 'END {print NR}' grade.txt
5

打印域个数,行号,记录,以及文件名
awk '{print NF,NR,$0} END {print FILENAME}' grade.txt
7 1 M.Tansley  05/99  48311  Green    8    40   44
7 2 J.Lulu     06/99  48317  green    9    24   26
7 3 P.Bunny    02/99  48     Yello    12   35   28
7 4 J.Troll    07/99  4842   Brown-3  12   26   26
7 5 L.Tansley  05/99  4712   Brown-2  12   30   28
grade.txt

若有数据,找出包含Brown的数据行:
awk '{if (NR > 0 && $4 ~/Brown/) print $0}' grade.txt
J.Troll    07/99  4842   Brown-3  12   26   26
L.Tansley  05/99  4712   Brown-2  12   30   28

NF强大的功能
echo $PWD
/usr/xxxx/ytcclb
取出当前目录名:
echo $PWD | awk -F/ '{print $NF}'
ytcclb
取出文件名及后缀
echo "/usr/xxxx/ytcclb/cat_file.txt" | awk -F/ '{print $NF}'
cat_file.txt

--the end--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值