2016-12-13 5 views
0

Ich habe eine Reihe von Protokolldateien in einem Ordner und Unterordnern. Ich möchte die Anzahl des Auftretens eines bestimmten Protokolls zusammen mit dem Dateizeitstempel anzeigen. Ich vereinfache Befehle hier, um nur unter einem Ordner nach Lösungszwecken zu suchen.Linux Befehl zum Zusammenführen von grep und ls -lrt Ausgabe

grep Befehl kann mir die Anzahl der Vorkommen oder Dateinamen geben, aber nicht die Zeitstempel. Wenn ich es mit ls Befehl pipe, dann verliere ich die Anzahl der Vorkommen. Wenn ich die Ausgabe ls an Grep übergebe, verliere ich die Zeitstempel.

Unten finden Sie Beispielbefehle. Ich brauche die Anzahl der Vorkommen vom ersten Befehl nach dem zweiten Befehl Dateinamen.

----/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 

Antwort

0

die Paste Befehl können Sie die Ausgänge Zeile für Zeile wie folgt kombiniert werden:

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 
Verwandte Themen