请你来说一下AWK的使用

参考回答:

1)作用:

样式扫描和处理语言。它允许创建简短的程序,这些程序读取输入文件、为数据排序、
处理数据、对输入执行计算以及生成报表,还有无数其他的功能。

2)用法:

awk [-F  field-separator]  'commands'  input-file(s)

3)内置变量

ARGC                                 命令行参数个数

ARGV                                 命令行参数排列

ENVIRON                              支持队列中系统环境变量的使用

FILENAME                             AWK浏览的文件名

FNR                                  浏览文件的记录数

FS                                   设置输入域分隔符,等价于命令行 -F选项

NF                                   浏览记录的域的个数

NR                                   已读的记录数
 
OFS                                  输出域分隔符

ORS                                  输出记录分隔符

RS                                   控制记录分隔符

4)实例:

1、找到当前文件夹下所有的文件和子文件夹,并显示文件大小

> ls -l | awk '{print $5 "\t" $9}'

读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域
,填充域。$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分
隔符是"空白键" 或 "[tab]键"。

2、找到当前文件夹下所有的文件和子文件夹,并显示文件大小,并显示排序

> ls -l | awk 'BEGIN {COUNT = -1; print "BEGIN COUNT"}
{COUNT = COUNT + 1; print COUNT"\t"$5"\t"$9}
END {print "END, COUNT = "COUNT}'
先处理BEGIN, 然后进行文本分析,进行第二个{}的操作,分析完进行END操作。

3、找到当前文件夹下所有的子文件夹,并显示排序

> ls -l | awk 'BEGIN {print "BEGIN COUNT"} /4096/{print NR"\t"$5"\t"$9}

END {print "END"}'

* /4096/ 正则匹配式子

* 使用print $NF可以打印出一行中的最后一个字段,使用$(NF-1)则是打印倒数第二个字段,其他以此类推。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

N1314N

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

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

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

打赏作者

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

抵扣说明:

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

余额充值