在Linux中有經(jīng)常做文件的操作,今天有個(gè)同事在生產(chǎn)環(huán)境統(tǒng)計(jì)數(shù)據(jù),發(fā)現(xiàn)有很多日志文件都是空的,文件太多了,他想查看一下有哪些文件不是空文件。
而且還不想使用腳本,就想用一個(gè)命令來(lái)搞定,確實(shí)夠懶的一個(gè)人。簡(jiǎn)單模擬了下。我只想查看e.lst 因?yàn)樗拇笮〔皇强盏摹?/p>
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
最精簡(jiǎn)的命令就是使用grep了。
DUM1102 /oravl01/oracle> ll *.lst|grep -v " 0 "
-rw-r--r-- 1 oracle dba 7 Jul 21 15:39 e.lst
當(dāng)然也可以使用awk來(lái)完成。
難度再升級(jí)一下,新增一個(gè)文件 f.lst 現(xiàn)在文件的結(jié)構(gòu)如下:
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
他現(xiàn)在想查看大小為7字節(jié)的文件,使用awk來(lái)牛刀小試。
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