歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux過濾空文件的命令總結

Linux過濾空文件的命令總結

日期:2017/2/28 14:29:43   编辑: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

Copyright © Linux教程網 All Rights Reserved