Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

18.02.2011, 15:34

[Solved] Zeile farbig ausgeben (regex match)

Erst mal Hallo zusammen.

Ich habe ein Programm das mehrere (ca 150) Zeilen ausgibt. Nun möchte ich, damit es überhaupt einigermasen lesbar ist, gewisse Zeilen farbig hervorheben.
Also ich teste jede Zeile auf einen Regex-Match, und wenn der "matched" soll genau diese Zeile farbig (rot) dargestellt werden.
Da ich keinen Einfluss auf das Programm habe dachte ich, ich könnte die Ausgabe per pipe "beeinflussen"
z.B. Pseudocode in einem File:

Quellcode

1
java meinProgram | 'regex-ausdruck' 

Gibts da mit grep eine möglichkeit?
Das kann mit bash oder perl gemacht werden, ist mir egal ;-)

Bin für jeden Tipp dankbar.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »schwaba« (21.02.2011, 15:57)


strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

2

18.02.2011, 23:08

Quellcode

1
$ java meinprogramm | grep --color=auto 'regex' # Nur bei GNU grep
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

3

21.02.2011, 10:02

Quellcode

1
$ java meinprogramm | grep --color=auto 'regex' # Nur bei GNU grep
Eben nicht, dann kommen ja NUR die Zeilen die den regex matchen. Ich will aber alle Zeilen, und die die matchen farbig...

4

21.02.2011, 15:55

Habe es nun mit einem Bash-Script hingebracht:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
IFS=$'\n';
for line in `java -jar test.jar`;
do
    	match=`expr match "$line" 'YXZ'`;
    	if [ "$match" -eq 3 ]
    	then            	
            	echo $line | egrep --color=auto '^.*$';
    	else
            	echo $line;
    	fi
done

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

5

21.02.2011, 18:00

Aso. Falsch verstanden. Dann nimm multitail: http://www.vanheusden.com/multitail/screenshots.html Alternativ dazu Perl

Quellcode

1
$ java meinprogramm | perl -p -e 's/(foobary)/\033[46;1m$1\033[0m\007/g;'
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

Thema bewerten