在Linux中有经常做文件的操作,今天有个同事在生产环境统计数据,发现有很多日志文件都是空的,文件太多了,他想查看一下有哪些文件不是空文件。
而且还不想使用脚本,就想用一个命令来搞定,确实够懒的一个人。简单模拟了下。我只想查看e.lst因为它的大小不是空的。
DUM1102/oravl01/Oracle>ll*.lst
-rw-r--r--1oracledba0Jul2115:39a.lst
-rw-r--r--1oracledba0Jul2115:39b.lst
-rw-r--r--1oracledba0Jul2115:39c.lst
-rw-r--r--1oracledba0Jul2115:39d.lst
-rw-r--r--1oracledba7Jul2115:39e.lst
最精简的命令就是使用grep了。
DUM1102/oravl01/oracle>ll*.lst|grep-v"0"
-rw-r--r--1oracledba7Jul2115:39e.lst
当然也可以使用awk来完成。
难度再升级一下,新增一个文件f.lst现在文件的结构如下:
DUM1102/oravl01/oracle>ll*.lst
-rw-r--r--1oracledba0Jul2115:39a.lst
-rw-r--r--1oracledba0Jul2115:39b.lst
-rw-r--r--1oracledba0Jul2115:39c.lst
-rw-r--r--1oracledba0Jul2115:39d.lst
-rw-r--r--1oracledba7Jul2115:39e.lst
-rw-r--r--1oracledba14Jul2116:35f.lst
他现在想查看大小为7字节的文件,使用awk来牛刀小试。
ll*.lst|awk-vfile_size=7'{if($5==file_size)print$5""$9}'
DUM1102/oravl01/oracle>ll*.lst|awk-vfile_size=7'{if($5==file_size)print$5""$9}'
7e.lst