awk应用-获取文件的信息(二)
来源:互联网 发布:centos7 yum 编辑:程序博客网 时间:2024/06/08 14:42
我们所编写的操作将应用于所有的输入行。当awk读入所有的输入行后,所产生的总数必须打印出来,因此,我们编写了一个由END规则控制的操作:
我们还可以使用BEGIN 规则给报告增加列标题。
现在,我们将这些程序代码放在文件filesum中并作为一个命令运行。
BYTES FILE
882 ch01
1771 ch03
1987 ch04
6041 com.tmp
1778 combine.idx
Total: 12459 bytes (5 files
这个命令的优点是能够确定一个目录中文件的大小。在显示基本机制之后,还需要注意几个问题。第一个问题出现在当使用ls -l命令显示整个目录时,列表中包含一个指定目录中块的总数的行。在前面例子(所有以"c" 开头的文件)中的部分列表中没有包含这一行。但是如果整个目录都列出来,那么在输出中将会包含下面的一行:
total 555
我们对块总数并不感兴趣,因为程序显示了文件的总的大小。现在filesum没有打印这一行,但是它读入了这一行并使计数器filenum得到了递增。
这个脚本还有一个问题,也就是它如何处理子目录。参见下面ls -l 执行结果中的一行:
第一列(文件的操作权限)中的首字符"d"表示该文件是子目录。文件的大小(960B)并不表示子目录下的文件的大小,因此,经常错误地把这个数加到文件总的大小上。因此,指出这是一个目录可能是有用的。
如果想列出子目录中的文件,可以在命令行中提供-R(递归)选项。该选项将传递给ls命令。然而,当它识别每个目录时,列表有一些区别。例如,要识别子目录old, ls -lR将产生一个空行,跟随:"./old"
我们前面的脚本忽咯了这行及其前面的空行,但是仍然递增文件计数器。幸运的是,我们可以设计规则来处理这类情况。我们来看下面修改后的、加了注释的脚本,请参照下一节的内容。
参考资料:http://www.linuxawk.com/communication/519.html
- awk应用-获取文件的信息(二)
- awk应用-获取文件的信息(一)
- awk应用-获取文件的信息(三)
- 使用awk巧妙获取规则文件里的有用信息
- awk应用-信息的检索
- 获取app应用版本的信息和当前设备的各种信息,跳转到appstore(二)
- 获取文件的信息
- 获取文件的信息
- 获取文件的信息
- awk 获取MAC、IP信息
- 获取应用的常用信息
- 获取应用的缓存信息
- 获取文件的版本信息
- 获取 RRD 文件的信息
- 获取清单文件的信息
- 获取文件的简单信息
- 反射的应用(1)---获取类中各成分的信息
- 获取进程的信息的代码二
- java多线程并发系列之锁的深入了解
- Subclipse logoEclipse的SVN插件 Subclipse编辑/纠错
- Using Raw Devices for Oracle Databases
- Replication 线程
- Maven依赖jar包的查询
- awk应用-获取文件的信息(二)
- JavaEE介绍
- javascript函数传递参数-----按值传递(google chrome)
- 观察者模式 Observer
- mac+eclipse+svn+maven经验总结
- MapReduce求海量数据中的最大值
- cocoapods错误整理
- 利用MapReduce解决在海量数据中求Top K个数
- mac搭建java web开发环境