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

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
gorgonz
Member
Member
Beiträge: 153
Registriert: 13. Mai 2006, 19:37
Wohnort: Frankenland

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

Beitrag von gorgonz » 9. Okt 2017, 12:42

Wollte mir eine kleine Routine schreiben, um in meinen betreuten Webseiten nach bestimmten Strings zu suchen. Das klappt manuell über

Code: Alles auswählen

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 :-)
Zuletzt geändert von gorgonz am 9. Okt 2017, 15:08, insgesamt 2-mal geändert.
Meine Systeme:
PC (I7-2600K): openSUSE leap 42.2 (64bit), QT 5.6.1, KDE Frameworks 5.26.0, Kernel 4.4.74-18.20-default
Laptop: Samsung RC530 (I7-2670QM), openSUSE leap 42.2, QT 5.6.1, KDE Frameworks 5.26.0, kernel 4.4.74-18.20-default

Werbung:
gorgonz
Member
Member
Beiträge: 153
Registriert: 13. Mai 2006, 19:37
Wohnort: Frankenland

Re: grep verliert die Formatierung der Fundstellen, wenn im script

Beitrag von gorgonz » 9. Okt 2017, 13:44

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: Alles auswählen

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
Meine Systeme:
PC (I7-2600K): openSUSE leap 42.2 (64bit), QT 5.6.1, KDE Frameworks 5.26.0, Kernel 4.4.74-18.20-default
Laptop: Samsung RC530 (I7-2670QM), openSUSE leap 42.2, QT 5.6.1, KDE Frameworks 5.26.0, kernel 4.4.74-18.20-default

gorgonz
Member
Member
Beiträge: 153
Registriert: 13. Mai 2006, 19:37
Wohnort: Frankenland

Re: grep verliert die Formatierung der Fundstellen, wenn im script

Beitrag von gorgonz » 9. Okt 2017, 15:07

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: Alles auswählen

echo $page | grep -E --color -o ".{0,20}$SEARCH.{0,20}"
GREP_OPTIONS habe ich jetzt durch das direkte flag --color ersetzt
Meine Systeme:
PC (I7-2600K): openSUSE leap 42.2 (64bit), QT 5.6.1, KDE Frameworks 5.26.0, Kernel 4.4.74-18.20-default
Laptop: Samsung RC530 (I7-2670QM), openSUSE leap 42.2, QT 5.6.1, KDE Frameworks 5.26.0, kernel 4.4.74-18.20-default

spoensche
Moderator
Moderator
Beiträge: 7259
Registriert: 30. Okt 2004, 23:53
Wohnort: Siegen

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

Beitrag von spoensche » 9. Okt 2017, 20:54

Code: Alles auswählen

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.

gorgonz
Member
Member
Beiträge: 153
Registriert: 13. Mai 2006, 19:37
Wohnort: Frankenland

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

Beitrag von gorgonz » 9. Okt 2017, 21:01

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.
Meine Systeme:
PC (I7-2600K): openSUSE leap 42.2 (64bit), QT 5.6.1, KDE Frameworks 5.26.0, Kernel 4.4.74-18.20-default
Laptop: Samsung RC530 (I7-2670QM), openSUSE leap 42.2, QT 5.6.1, KDE Frameworks 5.26.0, kernel 4.4.74-18.20-default

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast