ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-12-28 20:36:51  阅读:158  来源: 互联网

标签:文件大小 所有人 动作 文件 ll 实用 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的常用动作是格式化输出printprintf, 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 表达式的子字符串
正则表达式 /正则/ 在“//”中可以写入字符,则支持正则表达式

标签:文件大小,所有人,动作,文件,ll,实用,awk,大小
来源: https://www.cnblogs.com/jujujulie/p/15742730.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有