• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] grep verliert die Formatierung der Fundstellen, wenn im script

gorgonz

Hacker
Wollte mir eine kleine Routine schreiben, um in meinen betreuten Webseiten nach bestimmten Strings zu suchen. Das klappt manuell über
Code:
page=$(wget -O - --no-verbose $url);
echo $page | grep $searchpattern
Fundstellen werden dann, farbig markiert, im Text ausgegeben
Pack ich es in ein Skript, dann geht die farbige Markierung verloren. Hat jemand eine Idee, wie ich das wieder bewirken kann?

Nebenfrage: Üblicherweise wird der Inhalt der kompletten Webseite ausgegeben, da die Zeilenumschaltung über die HTML Tags erfolgt und nicht über \r\n. Ist es unkompliziert möglich, dem grep beizubringen, immer nur die Fundstellen und ca 20 Zeichen vor und nach der Fundstelle auszugeben?

Vielen Dank schonmal vorab :)
 
OP
G

gorgonz

Hacker
ok, eine Behebung habe ich gefunden.
Es hängt mit den grep options zusammen, weiß jedoch nicht warum sie verloren gehen können bzw. überschrieben. Nach Setzen von
Code:
export GREP_OPTIONS='--color=auto'
im Skript ist die Farbunterlegung auch im Skript wieder da.
Für das Anzeigen nur der Fundstellen +/- 20 weiss ich noch nichts
 
OP
G

gorgonz

Hacker
Ich kannte die Option "-o" von grep nicht. Damit ist das Anzeigen der Fundstellen mit den Zeichen vor/nachher einfach zu machen.
Falls jemand über diesen Thread stolpert: so schaut jetzt die korrekte Zeile im Skript aus
Code:
echo $page | grep -E --color -o ".{0,20}$SEARCH.{0,20}"
GREP_OPTIONS habe ich jetzt durch das direkte flag --color ersetzt
 

spoensche

Moderator
Teammitglied
Code:
grep -A 20 -B 20
gibt die jeweils die 20 Zeilen vor und 20 Zeilen nach dem Fund aus.

Wäre es nicht evtl. hilfreicher und Sinnvoller nur die betroffenen Zeilen auszugeben? Zum einen musst du weniger lesen, kannst dir die Farbe sparen und du bekommst exakt das angezeigt, was du sehen willst.
 
OP
G

gorgonz

Hacker
Hey spoensche,
vielen Dank für Deine Ergänzung, das merke ich mir für einen anderen Einsatz :).
In diesem speziellen Fall kann ich es nicht verwenden. Hintergrund: Ich suche malicous Code, der sich meistens im Javascript versteckt - und da ist der gesamte Code meistens nur eine laaange Zeile lang ;-).
Ich brauche nur ein bisschen Umfeld, damit ich sehe, ob es Zufall oder Treffer ist.
 
Oben