2016-12-13 6 views
0

フォルダとサブフォルダに一連のログファイルがあります。 特定のログの出現回数をファイルのタイムスタンプとともに表示したい。 ここでは、解決のために1つのフォルダの下でのみ検索するコマンドを簡略化しています。grepとls -lrtの出力をマージするLinuxコマンド

grepコマンドでは、オカレンスまたはファイル名の数はわかりますが、タイムスタンプは指定できません。もし私がlsコマンドでそれをパイプすると、私は出現回数を失う。私がlsをgrepに出力すると、私はタイムスタンプを失います。

以下はサンプルコマンドです。私は2番目のコマンドのファイル名の後に最初のコマンドからの発生の数が必要です。

----/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 
関連する問題