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--

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

被折叠的 条评论
为什么被折叠?



