shell: pipe einfärgen?

  • Hallo
    Ich suche schon lange nach einer Möglichkeit in einer pipe bestimmte Wörter ein zu färben.


    also in etwas wie das hier:
    make | grep --color -i ERROR


    Leider gibt grep dann ja nur die Zeilen aus die einen ERROR drinnen haben. Ich will aber alles sehen, da mich der Content auch interessiert.


    etwas in diese richtung geht zwar aber ist sicher nicht das einzige was geht.
    make | tee make.log | grep --color -i ERROR & tail -f make.log



    Ich glaube es gab mal so was wie
    make | color ERROR


    Weiß das noch jemand?

  • Schau dir mal swatch an. Damit sollte das gehen.

    Arch Linux VDR Packages Projekt
    Pakete: dvd, cdda, epgsearch, femon, filebrowser, live, menuorg, mp3, mplayer, osdpip, devstatus, remote, streamdev, systeminfo, text2skin, vdradmin-am, vompserver, xineliboutput, ...
    Hardware: MSI K8MM3-V, Mobile Sempron 3000+, 512MB RAM, 500GB Samsung HD501LJ, Seasonic S12 330, AVBoard 1.4, Antec NSK2480
    Software: Arch Linux, VDR 1.6.0 + Extensions Patch

  • für make habe ich auch colormake oder colorgcc gefunden. Aber das ist nicht das was ich suche.


    es soll auch mit

    Code
    echo "Hello World" | color olr


    gehen.
    Das sollte dann ja auch gehn:

    Code
    echo "Hello World" | color olr  | color ell


    Bin mir sicher mal so was gesehen zu haben.

  • ok Perl ist mein Freund

    Code
    echo "Hello World" | perl -p -e 's/ello/\e[31mello\e[0m/' | perl -p -e 's/orl/\e[31morl\e[0m/'




    Bash
    #!/bin/sh
    
    
    while read text
    do
            echo $text | perl -p -e "s/$1/\e[31m$1\e[0m/"
    done


    Gespeichert unter colorize

  • das mit dem colorize gefällt mir gut.


    Mein einziges Problem ist, das perl irgendwo ein paar Leerzeichen wegläst.


    Habe das ganze mit ps -u $USER f probiert. Da passt die Spaltenaufteilung nach einem colorize nicht mehr.


    Wäre toll, wenn da noch jemand eine Idee hat. Meine RegEx Künste bringen da jetzt im Moment keine Lösung hervor.


    Viele Grüße
    Sonja

  • ok es ist eine Möglichkeit einen Text einzufärben aber um das sed bzw perl kommt man da auch nicht rum.
    Ich will ja nur bestimmte Schlüsselwörter einfärben.


    echo Hello World | colorize ell | colorize or
    sieht dann so aus
    Hello World

  • Das macht genau das selbe was ich oben auch beschrieben hatte. nur wird hier sed und nicht perl benutzt.
    Aber wie immer gibt es viele Wege

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!