Wie grep in mehrere Dateien

387
bm13kk

Ich muss mehrere Dateien beschneiden, und die meisten Informationen werden entfernt (mit grep). Jetzt meine Ausgabe mit Dateinamen verschmutzt. Wie kann ich sie entfernen?

Kurz zum Problem: $ tail -F /log/rest_server*.log | egrep -v ' INFO (<some regext>)'

Rückkehr:

==> /log/rest_server_dbs0.log <==  ==> /log/rest_server_dbs1.log <== <some useful data1>  ==> /log/rest_server_dbs0.log <==  ==> /log/rest_server_dbs1.log <== <some useful data2>  ==> /log/rest_server_dbs0.log <==  ==> /log/rest_server_dbs1.log <==  ==> /log/rest_server_dbs0.log <==  ==> /log/rest_server_dbs1.log <==  ==> /log/rest_server_dbm0.log <== <some useful data3>  ==> /log/rest_server_dbs1.log <==  ==> /log/rest_server_dbs0.log <==  ==> /log/rest_server_dbs1.log <==  ==> /log/rest_server_dbs0.log <==  ==> /log/rest_server_dbs1.log <==  ==> /log/rest_server_dbs0.log <==  ==> /log/rest_server_dbs1.log <==  ==> /log/rest_server_dbm0.log <== <some useful data4>  ==> /log/rest_server_dbs1.log <== 

Wie kann ich diese Dateinamen und schwarzen Linien entfernen, wenn keine Daten vorhanden sind?

das Ergebnis machen

==> /log/rest_server_dbs1.log <== <some useful data1> <some useful data2>  ==> /log/rest_server_dbm0.log <== <some useful data3> <some useful data4> 
0
Bitte fügen Sie weitere Details hinzu. Ich habe keine Ahnung, was Sie fragen. Vielleicht kann Ihnen jemand mit dem nötigen Wissen helfen, aber es fällt Ihnen schwer, Ihre Frage zu finden. user 99572 is fine vor 8 Jahren 0

1 Antwort auf die Frage

0
parapente

Sie können stattdessen die folgenden Befehle verwenden:

$ tail -F /log/rest_server*.log | sed -e "/^==>/d;/^$/d" | egrep -v ' INFO (<some regext>)' 

Der Befehl sed entfernt die Zeilen, die mit "==>" beginnen, und die leeren Zeilen.

damit bekomme ich ' `mit dem verlieren von Dateinamen, wenn ich notwendige Informationen bekomme. Ich kann dasselbe mit nur "grep" tun, ohne "sed" zu verwenden bm13kk vor 8 Jahren 0