2016-04-18 6 views
0

Ich versuche, Log-Dateien zu analysieren - einige Werte aus Strings und schreibe es in DateiWie Dateien nach mtime sortiert und an grep übergeben werden?

Zuerst bekomme ich die Liste der Dateien nach mtime sortiert.

find . -name log* -printf '%Tm%Tm%Td%TH%TM%TS %p\n'| sort | awk '{print $2}' 

es korrekt funktioniert und druckt Liste der Dateien

Zum Beispiel

./2015195/log/log.08 
./2015486/log/log.10 
./2015418/log/log.13 
./2015415/log/log.14 
./2015015/log/log.18 
./2015715/log/log.19 
./2015115/log/2015-09-10/log.21 
... 

Als nächstes

mit bestimmten Muster aus Linien dieser Liste und Druck Wörter passieren
grep 'pattern' $(find . -name log* -printf '%Tm%Tm%Td%TH%TM%TS %p\n'| sort | awk '{print $2}') | awk '{print $1" "$4}' > prsd.txt 

Es funktioniert aber es fügt Dateiname zu jeder Ausgabezeile wie

hinzu
./2015195/log/log.08:02:01:09,811 12345ABCD 
./2015195/log/log.08:02:02:01:09,975 12345CDEF 
./2015195/log/log.08:12:02:02:01:09,978 12345EFGF 
./2015195/log/log.08:02:02:01:10,223 12345LJIG 
./2015195/log/log.08:02:01:10,275 12345IIUY 
... 

Hier das Problem, wie diese Ergänzungen zu löschen?

danke im voraus.

+0

So wollen Sie nicht 'grep' die Dateinamen zeigen? Sie beziehen sich wahrscheinlich auf [grep ohne Pfad/Datei: Zeile] (http://stackoverflow.com/a/19406829/1983854). – fedorqui

+0

Sie könnten 'cut' anstelle von' awk' für die triviale Feldauswahl verwenden. Ich würde empfehlen, 'finde was auch immer | xargs grep pattern 'anstelle der Variablensubstitution, da das Problem von zu langen Argumentlisten vermieden wird. –

Antwort

1

Von man grep,

-h, --no-filename 
      Suppress the prefixing of file names on output. This is the 
      default when there is only one file (or only standard input) 
      to search. 
+0

http://askubuntu.com/questions/247290/grep-something-anyfiles-log-afile-csv-dont-need-to-print-the-input-path-a/247380 – kay27

Verwandte Themen