bitcon
Goto Top

Weiterverarbeitung mit grep Befehl

Guten Tag Forumsnutzer

Ich möchte ein Skript erstellen, welches auf einem Raspberry pi2 laufen soll. Dieses Skript hat die Aufgrabe, eine E-Mail welche sich bereits als .txt auf dem pi befindet zu öffnen nach einem bestimmten Text(String) zu durchsuchen und die nächsten 10 Zeichen nach diesem String in eine neue Datei zu speichern. Mein erster Ansatz ist es gewesen die Datei mit einem grep Befehl zu Filtern. Damit ist es mir gelungen den immer gleichbleiben Teil des Strings herauszufiltern. Nun stellt sich mir die Frage ob es überhaupt möglich ist den Wert der durch den grep Befehl gefiltert wurde weiterzuverarbeiten sprich in eine neue Datei zu speichern. Und sollte dies der Fall sein wie ist es möglich.

Vielen Dank für eure Hilfe.

Gruß

Bitcon

Content-Key: 312959

Url: https://administrator.de/contentid/312959

Printed on: April 23, 2024 at 16:04 o'clock

Member: colinardo
colinardo Aug 18, 2016 updated at 09:11:16 (UTC)
Goto Top
Hallo Bitcon
kein Problem mit ein bißchen Regex

Mit sed:
sed -rne 's/.*Suchwort(.{10}).*/\1/ip' mail.txt >extracted.txt  
Mit grep:
grep -Po 'Suchwort.{10}' mail.txt >extracted.txt  
Grüße Uwe
Member: Bitcon
Bitcon Aug 18, 2016 at 09:17:22 (UTC)
Goto Top
Hallo Uwe

Erstmal möchte ich mich für deine schnelle Lösung bedanken.
Wenn ich den grep Befehl wie du ihn angegeben hast ausführen möchte kommt allerdings als Antwort
bash: extracted.txt Keine Berechtigung. Ich habe versucht ein sudo vor den Befehl zu setzten leider ohne Erfolg.
Ich bin noch ein absoluter Anfänger was das bashen angeht face-smile

Gruß
Bitcon
Member: colinardo
colinardo Aug 18, 2016 updated at 09:23:55 (UTC)
Goto Top
Dann hast du im aktuellen Verzeichnis keine Schreibrechte, du kannst statt dem Namen auch einen kompletten Pfad angeben:
>/Path/to/Dir/extracted.txt
oder fürs HomeDirectory, da solltest du auf jeden Fall reinschreiben dürfen.
>~/extracted.txt

Das sind ganz einfache stdout "redirects" also absolute Basics, das sollte man wenn man unter Linux unterwegs ist eigentlich als ganz zu Beginn lernen face-wink
3. All about redirection
http://tldp.org/LDP/Bash-Beginners-Guide/html/
Member: Bitcon
Bitcon Aug 18, 2016 at 09:31:56 (UTC)
Goto Top
Vielen Dank Uwe
die extracted.txt wurde jetzt erstellt allderdings ist sie noch leer.
die Datei in der die Mail mit dem Passwort ungefiltert sind liegen im /var/mail/root die datei heißt root. Die Datei root ist ohne Endung ist das dann überhaupt eine Textdatei? Oder muss ich im Befehl dann noch eine änderung vornehmen?

Gruß

Bitcon
Member: colinardo
colinardo Aug 18, 2016 updated at 09:38:52 (UTC)
Goto Top
Dann hast du das Suchwort im Sed oder grep Befehl nicht richtig angepasst (Achtung Regular Expression syntax bei Sonderzeichen!!)
Regular Expressions Tutorial
Die Datei root ist ohne Endung ist das dann überhaupt eine Textdatei?
kannst du ja ganz einfach mit cat /var/mail/root
selbst feststellen, kannst du den Inhalt auf der Konsole lesen geht auch das Auslesen problemlos.
Oder muss ich im Befehl dann noch eine änderung vornehmen?
Wenn ich weiß wonach du suchst und dein Dateiinhalt aussieht ...
Member: Bitcon
Bitcon Aug 18, 2016 at 09:49:11 (UTC)
Goto Top
Also mit sudo cat /var/mail/root ist es möglich die Mail zu öffnen. ohne sudo nicht

Der Text der Email lautet:

Your password for Gäste: wikuxuhi64

UTM SG 310 KV Eifelkreis in Bitburg

Mein Ziel ist es wie bereits beschrieben nur das Passwort welches sich täglich ändert zu extrahieren.

Vielen Dank für deine Hilfe

Bitcon
Member: colinardo
colinardo Aug 18, 2016 updated at 10:01:33 (UTC)
Goto Top
Zitat von @Bitcon:
Also mit sudo cat /var/mail/root ist es möglich die Mail zu öffnen. ohne sudo nicht
Logisch wenn du nicht als root unterwegs (eingeloggt) bist!
Der Text der Email lautet:
Your password for Gäste: wikuxuhi64

UTM SG 310 KV Eifelkreis in Bitburg

Mein Ziel ist es wie bereits beschrieben nur das Passwort welches sich täglich ändert zu extrahieren.
Das schreibst du ja erst jetzt face-smile, hellsehen kann ich natürlich nicht, aber kein Problem
sudo cat /var/mail/root | sed -rne 's/.*password for Gäste: (.{10}).*/\1/ip' >~/password.txt  
Geht einwandfrei ... Pfad zur Zieldatei (hier 'password.txt' in deinem home dir) natürlich anpassen!
Member: Lochkartenstanzer
Lochkartenstanzer Aug 18, 2016 updated at 10:00:02 (UTC)
Goto Top
 sudo grep  "Your password for Gäste:" /var/mail/root/ | gawk  -F": " ' { print $2 } '  >~/aktuelles-password.txt
Member: Lochkartenstanzer
Lochkartenstanzer Aug 18, 2016 updated at 10:04:47 (UTC)
Goto Top
Zitat von @colinardo:

Das schreibst du ja erst jetzt face-smile, ...


Es wäre ja zu einfach, wenn ein TO gleich alle Informationen liefern würde. face-smile

... hellsehen kann ich natürlich nicht, aber kein Problem

Muddu Kristallkugel kaufen. face-smile

lks
Member: colinardo
colinardo Aug 18, 2016 updated at 10:07:10 (UTC)
Goto Top
Zitat von @Lochkartenstanzer:
Es wäre ja zu einfach, wenn ein TO gleich alle Informationen liefern würde. face-smile
Jepp Quia nesciunt quid legunt ...
Member: Lochkartenstanzer
Lochkartenstanzer Aug 18, 2016 at 10:12:03 (UTC)
Goto Top
Zitat von @colinardo:

Zitat von @Lochkartenstanzer:
Es wäre ja zu einfach, wenn ein TO gleich alle Informationen liefern würde. face-smile
Jepp Quia nesciunt quid legunt ...

Naja, das müßte doch eher heißen:

Administrator, ignosce illis, quia nesciunt quid legunt. face-smile

lks
Member: colinardo
colinardo Aug 18, 2016 updated at 10:21:47 (UTC)
Goto Top
[OT]
Immer getreu dem Motto:
"Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun." (Aristoteles)
face-smile
[/OT]