
Hallo, Am Tue, 29 Aug 2017, K. Elo schrieb:
2017-08-29 16:01 +0200, David Haller schrieb:
Denke schon. Aber um ganz sicher zu sein, zeig doch mal ein konkretes und komplettes Beispiel (wobei du die reinen _Text_-Inhalte in "Bla*" und "Roter Wert" natürlich zensieren kannst und solltest, aber so, das die Struktur (IP/Text) erhalten bleibt).
Also eine komplette Beispielzeile inkl. der Escapes wenn's geht.
Hier ein Auszug (2 Zeilen, mit cat -A produziert):
^[[32m^[[K1081^[[m^[[K^[[36m^[[K:^[[m^[[KEI_1987/0379 Datum: 19.10.1987 ID: ^[[01;31m^[[KSA8750379^[[m^[[K ^[[32m^[[K1300^[[m^[[K^[[36m^[[K:^[[m^[[KM-oM-^BM-7 Ohne Titel ^[[01;31m^[[KSA8772126^[[m^[[K
Ich habe es mir genauer angeschaut und es werden auch andere Farbkodierungen verwendet. Daher sollten eigentlich ALLE farbkodierten Stellen extrahiert werden. Also, wenn ich es richtig sehe, Werte zwischen "^[[????m^[[K" und "^[[m^[[K". Eigentlich ist dies wie mit Tags, aber für mich ist eben das Problem, wie Escapesequenzen behandelt werden sollten.
Der Output der 1. Zeile sollte also sein:
1081 : SA8750379
Achtung, schwer zu lesend: $ cat Kimmo_Elo_Escapes_Prob.sh | perl -ne '\ if( s/.*?(?:\e\[\d+(?:;\d+)?m(.*?)\e\[\d*(?:;\d+)?m)+.*?/$1 /gs ) { s/\e\[K//g; s/\s+$/\n/; print ; }' 1081 : SA8750379 1300 : SA8772126 Leichter lesbar: perl -ne 'if( s/ ### ersetze .*? ### möglichst kurzes irgendwas (?: ### Gruppe auf \e\[\d+ ### ESC [ NUMMERn (?:;\d+)? ### ggfs. gefolgt von ";NUMMERn" m ### m (also ESC [ NUMMER(;NUMMER)m (.*?) ### möglichst kurzes irgendwas \e\[\d* ### (?:;\d+)? ### noch ne ESC [ .. m Sequenz, diesmal ggfs. leer m ### (siehe \d* vs. \d+ )+ .*? ### möglichst kurzes irgendwas /$1 /gsx ### durch den Text zw. den 2 ESC [ Sequenzen ) { s/\e\[K//g; ### noch die \e[K Sequenzen raus s/\s+$/\n/; ### Leerzeichen am Ende raus print ; }' Hm. Ich seh grad, werden ESC [ .. m nicht "geschlossen", z.B.: "[31mfoo[36mbar[K:[m", dann klappt das so nicht. Is nicht so einfach... Melde dich ggfs. nochmal. HTH, -dnh -- Hmm mit welcher Beschleunigung muß man denn ein Schwein durch die Atmosphäre schießen, damit es durchgegrillt ist, aber schön saftig bleibt und mit einer leichten Kruste? Und wie weit weg und in welchem Abwurfwinkel, damit man den vom Gegenüber bereitgehaltenen Spieß trifft? :-) -- Erhard Schwenk -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um den Listen Administrator zu erreichen, schicken Sie eine Mail an: opensuse-de+owner@opensuse.org