我一定要让所有人都知道awk这个实用操作

目录

1.查看普通文件大小

2.查看目录文件大小

3.使用awk命令统计指定文件的大小

3.1 awk动作

3.2 awk条件


对不起!!!忍不住标题党了。
但是这个命令在我日常工作中使用频率真的太高了,我一定要分享出来。
对awk用得比较多的大佬嘛可以绕路了,这篇主要是给不了解awk的孩子们一个关于统计文件大小的实用小tips。

1.查看普通文件大小

首先,在Linux系统下,需要查看普通文件大小的时候我们一般会怎么做?
是不是,用 ll 命令显示所在目录下的文件信息,第五列就是对应文件的大小(用字节表示)。见下图:

或者用 ll -h 命令以和文件大小相近的单位显示:

如果希望统一单位也可以使用 --block-size 参数:

2.查看目录文件大小

但是,使用 ll 命令是没有办法直接看到目录文件的大小的。如果需要查看目录大小,需要用 du 

3.使用awk命令统计指定文件的大小

现在如果我们要统计多个文件的大小怎么办,这多个文件不一定是某个目录下所有的文件,可能只是其中一部分的。我们需要把各个文件的大小找出来,然后进行累加得到最后的统计结果。这个时候, awk 就非常好使了。先看怎么用,再解释具体的用法规则。
例如,统计当前路径下20200811这天的所有文件(文件名包含日期)大小之和,数据单位用T表示。

ll | grep 20200811 | awk '{sum+=$5}END{print sum/(1024^4)}' 

首先通过 grep 命令筛选出符合条件的文件,然后使用累加操作,将第五列的值(也就是文件大小,单位为Byte)累加存入变量 sum ,最后将单位进行转换,打印最后的数值。
下面我贴了一些 awk 的使用说明,了解这些以后基本的操作应该是能看懂了。

3.1 awk动作

awk的常用动作是格式化输出 print 和 printf , print 会在每次输出后自动换行,而如果使用 printf 动作,就必须在最后加入"\n"。
 awk 会根据空格和制表符,将每一行分成若干字段,依次用$1$2$3代表第一个字段、第二个字段、第三个字段等等。另外,$0代表当前行。

3.2 awk条件

 awk 允许指定输出条件,只输出符合条件的行。输出条件要写在动作的前面。

条件类型条 件说 明
awk保留字BEGIN在 awk 程序一开始,尚未读取任何数据之前执行。BEGIN 后的动作只在程序开始时执行一次
awk保留字END在 awk 程序处理完所有数据,即将结束时执行?END 后的动作只在程序结束时执行一次
关系运算符>、<、>=、<=、==、!=
A~B判断字符串 A 中是否包含能匹配 B 表达式的子字符串
A!~B判断字符串 A 中是否不包含能匹配 B 表达式的子字符串
正则表达式/正则/在“//”中可以写入字符,则支持正则表达式
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值