2017-08-22 4 views
-1

Ich habe eine Protokolldatei, die Leerzeichen hat, und ich möchte sie entfernen, jedoch in einigen Fällen echte Loglines mit CR enden und einige mit CR LF enden.Wie CRLF Leerzeilen zu entfernen

Wie kann ich sed/awk/TR die leeren Zeilen, die CR LF und keinen Text haben? Ich habe die Returns zu jeder Zeile unten hinzugefügt, um Ihnen zu zeigen, wie es in Notepad ++ aussieht.

Ich habe den folgenden Befehl versucht, es entfernt jedoch in einigen Fällen die letzten Charters von anderen Protokollzeilen.

sed -i "s/.$//" %Logs%\%DIR1%/%FILENAME1 

Schaltet diese

08-22 08:54:53.612 I/SystemServer( 760): StartUserManagerServic 
08-22 08:54:53.612 I/SystemServiceManager( 760): Starting com.android.server.pm.UserManagerService$LifeCycl 
08-22 08:54:53.613 I/SystemServer( 760): InitAttributerCach 

In diese

08-22 08:54:53.612 I/SystemServer( 760): StartUserManagerService 
08-22 08:54:53.612 I/SystemServiceManager( 760): Starting com.android.server.pm.UserManagerService$LifeCycle 
08-22 08:54:53.613 I/SystemServer( 760): InitAttributerCache 

Beispiel: log mit CRLF hinzugefügt. Der Versuch, die Leerzeichen zu entfernen, ohne die wirklichen loglines das Abschneiden

08-22 09:13:42.018 D/TESTAPP(7560): <<< Server Application info >>> <CR><LF> 
08-22 09:13:42.018 D/TESTAPP(7560): Name: Subscription<CR><LF> 
08-22 09:13:42.018 D/TESTAPP(7560): Package: com.bla.bla2<CR><LF> 
08-22 09:13:42.018 D/TESTAPP(7560): Version Name: 1.0.32.47<CR><LF> 
08-22 09:13:42.018 D/TESTAPP(7560): Version Code: 32<CR> 
<CR><LF> 
08-22 09:13:42.019 I/TESTAPP(7560): (95): Upgrade for Subscription is not available<CR> 
<CR><LF> 
08-22 09:13:42.020 W/TESTAPP(7560): (95): Unable to get the information of ccom.bla.bla as it is not installed<CR> 
<CR><LF> 
08-22 09:13:42.021 W/TESTAPP(7560): (95): Unable to get the information of com.bla.bla as it is not installed<CR> 
<CR><LF> 
08-22 09:13:42.023 W/TESTAPP(7560): (95): Unable to get the information of com.bla.bla<CR> 
+1

ISTM Ihre Daten hat Leitungen CRLF und andere CRCLLF beenden, also würde ich vorschlagen, dass 'sed s/\ x0d \ x0d \ x0a/\ x0d \ x0a/g' die Aufgabe erledigen sollte. – Magoo

+0

Laufen Sie in einer DOS-Umgebung? Interessiert es dich, wie die nicht leeren Zeilen enden? – Beta

+0

@Magoo, Dies funktionierte nicht sed -i "s/\ x0d \ x0d \ x0a/\ x0d \ x0a/g" test.log oder sed „s/\ x0d \ x0d \ x0a/\ x0d \ x0a/g "test.log> test_neu.log – rcmpayne

Antwort

0

sed -i „s/\ r //“ test.log das Problem beheben wird, wo Sie CR CRLF

Verwandte Themen