[linux] Strip ansi

Hugo van der Kooij hvdkooij op vanderkooij.org
Zo Okt 23 16:02:48 CEST 2005


Hoi,

Ik heb een uitvoer die knap verziekt wordt door een hoop ANSI zooi (of
andere stuur codes).

Na wat zoeken kwam ik een stukje perl tegen  om dat te strippen:
	s/\033\[(?:\d+(?:;\d+)*)*m//go;
(http://www.infynity.spodzone.com/Perl/attr)

Maar dat stript nog lang niet genoeg rommel weg. Heeft iemand een beter
stuk code rondslingeren of weet die bij geval te vinden?

Voordat Panda hun uitvoer weer veranderde werkt het volgende blok
filtering redelijk goed:

   $line =~ s/\x1b\[m//g;
   $line =~ s/\x1b\[.m//g;
   $line =~ s/\x1b\[..m//g;
   $line =~ s/\x1b\[.;.m//g;
   $line =~ s/\cO//g;
   $line =~ s/\cM$//;
   $line =~ s/\cL//g;
   $line =~ s/....\cH\cH\cH\cH//g;
   $line =~ s/...\cH\cH\cH//g;
   $line =~ s/..\cH\cH//g;
   $line =~ s/.\cH//g;

Een dirty stuk code maar het werkte op dat moment.

Hugo.

PS: Als iemand zich daar op wil botvieren dan staat de 5 MB text file
ingepakt en wel (dus maar 400kB) op:
http://viruspool.vanderkooij.org/panda.lst.gz

-- 
	I hate duplicates. Just reply to the relevant mailinglist.
	hvdkooij op vanderkooij.org		http://hvdkooij.xs4all.nl/
		Don't meddle in the affairs of magicians,
		for they are subtle and quick to anger.



More information about the Linux mailing list