linux怎么过滤文件(Linux如何过滤空文件?Linux过滤空文件的命令总结)
在Linux中有经常做文件的操作 ,今天有个同事在生产环境统计数据 ,发现有很多日志文件都是空的 ,文件太多了 ,他想查看一下有哪些文件不是空文件 。
而且还不想使用脚本 ,就想用一个命令来搞定 ,确实够懒的一个人 。简单模拟了下 。我只想查看e.lst 因为它的大小不是空的 。
DUM1102 /oravl01/Oracle> ll *.lst
-rw-r--r-- 1 oracle dba 0 Jul 21 15:39 a.lst
-rw-r--r-- 1 oracle dba 0 Jul 21 15:39 b.lst
-rw-r--r-- 1 oracle dba 0 Jul 21 15:39 c.lst
-rw-r--r-- 1 oracle dba 0 Jul 21 15:39 d.lst
-rw-r--r-- 1 oracle dba 7 Jul 21 15:39 e.lst
最精简的命令就是使用grep了 。
DUM1102 /oravl01/oracle> ll *.lst|grep -v " 0 "
-rw-r--r-- 1 oracle dba 7 Jul 21 15:39 e.lst
当然也可以使用awk来完成 。
难度再升级一下 ,新增一个文件 f.lst 现在文件的结构如下:
DUM1102 /oravl01/oracle> ll *.lst
-rw-r--r-- 1 oracle dba 0 Jul 21 15:39 a.lst
-rw-r--r-- 1 oracle dba 0 Jul 21 15:39 b.lst
-rw-r--r-- 1 oracle dba 0 Jul 21 15:39 c.lst
-rw-r--r-- 1 oracle dba 0 Jul 21 15:39 d.lst
-rw-r--r-- 1 oracle dba 7 Jul 21 15:39 e.lst
-rw-r--r-- 1 oracle dba 14 Jul 21 16:35 f.lst
他现在想查看大小为7字节的文件 ,使用awk来牛刀小试 。
ll *.lst | awk -v file_size=7 { if ( $5==file_size ) print $5 " " $9}
DUM1102 /oravl01/oracle> ll *.lst | awk -v file_size=7 { if ( $5==file_size ) print $5 " " $9}
7 e.lst
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!