2016-12-13 114 views
0

我有一組文件夾和子文件夾中的日誌文件。 我想顯示特定日誌的發生次數以及文件時間戳。 我在這裏簡化命令只在一個文件夾下進行搜索以解決問題。Linux命令合併grep和ls -lrt輸出

grep命令可以給我發生的次數或文件名,但不是時間戳。如果我用ls命令對它進行管道操作,那麼我會減少事件的發生次數。如果我輸出ls輸出到grep,我放鬆時間戳。

下面是示例命令。我需要第二個命令文件名後的第一個命令的出現次數。

----/logs/server> grep -c 'sample search text' * | grep -v :0 
i0_server2_wls.log:980 
i0_server2_wls.log00005:20 
i0_server1_wls.log:4 
i0_server1_wls.log00023:186 
i0_server1_wls.log00024:767 
i0_server1_wls.log00027:49 
i0_server1_wls.log00028:401 
i0_server1_wls.log00029:199 
i0_server1_wls.log00031:8122 
i0_server1_wls.log00033:7744 
i0_server1_wls.log00034:18476 


----/logs/server> grep -l 'sample search text' * | xargs ls -lrt 
-rw-r--r-- 1 mygroup myuser 41824670 Jul 8 20:42 i0_server1_wls.log00023 
-rw-r--r-- 1 mygroup myuser 71726325 Jul 19 20:45 i0_server1_wls.log00024 
-rw-r--r-- 1 mygroup myuser 91704808 Aug 22 17:47 i0_server1_wls.log00027 
-rw-r--r-- 1 mygroup myuser 56183363 Aug 29 18:33 i0_server1_wls.log00028 
-rw-r--r-- 1 mygroup myuser 162665267 Sep 6 20:14 i0_server1_wls.log00029 
-rw-r--r-- 1 mygroup myuser 80384219 Sep 28 22:03 i0_server2_wls.log00005 
-rw-r--r-- 1 mygroup myuser 170614866 Nov 19 22:35 i0_server1_wls.log00031 
-rw-r--r-- 1 mygroup myuser 142315429 Dec 8 20:48 i0_server1_wls.log00033 
-rw-r--r-- 1 mygroup myuser 335498557 Dec 12 22:38 i0_server1_wls.log00034 
-rw-r--r-- 1 mygroup myuser 62375653 Dec 13 19:23 i0_server2_wls.log 
-rw-r--r-- 1 mygroup myuser 38069112 Dec 13 19:23 i0_server1_wls.log 

回答

0

使用粘貼命令,您可以通過線這樣的組合輸出線:

grep -c 'sample search text' * | grep -v :0 > file1.txt 
grep -l 'sample search text' * | xargs ls -lrt > file2.txt 
paste -d" " file1.txt file2.txt