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 passierengrep '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.
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
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. –