Text in Variable gespeichert in einer Txt-Datei finden

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo, ich komme nicht weiter und brauche eure Hilfe. Habe schon seit 2h Google bemüht und finde die Lösung nicht. Wahrscheinlich ist es ganz einfach.

    Ich habe eine große Text-Datei mit SHA-1 Werten.

    Nun möchte ich einen bestimmten SHA-1 Wert dort finden.

    Den SHA-1 Wert speichere ich in ein Variable ab:

    echo -n '12345' | sha1sum > Muster

    Muster muss ich noch ein wenig bearbeiten, weil der Befehl noch ein ' -' anhängt.

    nun versuche ich den Wert in der Datei zu finden aber der Befehl:

    grep -w $Muster Textdatei.txt

    funkioniert nicht. Es kommt relativ schnell ein neuer Prompt ohne eine Ausgabe.

    habt ihr eine Tipp, was ich eingeben muss, umd den Wert zu finden?

    Meine Projekte:

    Lokaler Unbound DNS-Resolver - Stand 100 %

    Ad-Blocker Pi-Hole - Stand 100 %

    Wöchentliches automatisches SD-Karte-Image auf Raid 1 USB-HDD - Stand 100 %

    Raspi als Kopierstation mit Lide-Scanner und 2 Druckern - Stand 100%

    Streamingclient mit Kodi - Stand 0%

    Meine Hardware:

    RPi B 3+, Rydges SpeedPower PC Netzteil 5V 2,5A / 2500 mAh, Generalkeys Ziffernblock, Canon LiDe 220, USB 3.0 7 USB-Port Superspeed

    Meine Software:

    Raspian Stretch, Windows 8.1, Putty, RealVNC 

  • Text in Variable gespeichert in einer Txt-Datei finden? Schau mal ob du hier fündig wirst!

  • Super, vielen Dank für die Info. :) Jetzt habe ich den gesuchten SAh1 Wert in einer Variable - nur findet grep den Wert nicht, obwohl er in Textdatei drin stehen sollte.

    Echo $Muster gibt jetzt den richtigen SHA-1 Wert aus (überprüft mit SHA1MD5Hash.exe auf meiner Windows-Maschine).

    Ich habe verscheidene Schreibweisen versucht:

    grep -we '{$Muster}' Textdatei.txt

    grep -w $Muster Textdatei.txt

    cat Textdatei.txt | grep $Muster

    cat Textdate.txt | grep -e '{$Muster}'

    Kann mir bitte wieder jemand behilflich sein, ich steige da nicht mehr durch.

    Meine Projekte:

    Lokaler Unbound DNS-Resolver - Stand 100 %

    Ad-Blocker Pi-Hole - Stand 100 %

    Wöchentliches automatisches SD-Karte-Image auf Raid 1 USB-HDD - Stand 100 %

    Raspi als Kopierstation mit Lide-Scanner und 2 Druckern - Stand 100%

    Streamingclient mit Kodi - Stand 0%

    Meine Hardware:

    RPi B 3+, Rydges SpeedPower PC Netzteil 5V 2,5A / 2500 mAh, Generalkeys Ziffernblock, Canon LiDe 220, USB 3.0 7 USB-Port Superspeed

    Meine Software:

    Raspian Stretch, Windows 8.1, Putty, RealVNC 

  • Ich kann mir das nicht erklären.

    grep -e ${Muster} Textdatei.txt

    findet den SHA1-Wert nicht in Textdatei.txt, obwohl er darin enthalten sein müsste (mit Excel auf Windowsmaschine getestet).

    Aufbau der Textdatei.txt:

    Zeilenweise ein SHA-1-Wert gefolgt von einem Doppelpunkt und einer mehrstelligen Zahl.

    Was mir auffällt, das Kommando ist nach ca. 30 Sekunden fertig. Wenn es die gesamte Datei durchsucht hätte, wäre das irre schnell, denn unter Windows mit einem "large-file-editor" benötigt man ca 15 Minuten für einen vollständigen Suchlauf (für einen String, der nicht enthalten ist).


    grep -we ${Muster} Textdatei dürfte nicht gehen, da nach dem ganzen String gesucht wird und nicht nach einem Teilstring in der Zeile.

    Ein Gedanke: enthält die Variable, die wir mit

    Muster=$(echo -n '12345' | sha1sum |awk '{print $1}')

    erzeugt haben, irgendwelche andere unsichtbare Zeichen als den SHA1-Wert (z. B. ein CR)?

    Meine Projekte:

    Lokaler Unbound DNS-Resolver - Stand 100 %

    Ad-Blocker Pi-Hole - Stand 100 %

    Wöchentliches automatisches SD-Karte-Image auf Raid 1 USB-HDD - Stand 100 %

    Raspi als Kopierstation mit Lide-Scanner und 2 Druckern - Stand 100%

    Streamingclient mit Kodi - Stand 0%

    Meine Hardware:

    RPi B 3+, Rydges SpeedPower PC Netzteil 5V 2,5A / 2500 mAh, Generalkeys Ziffernblock, Canon LiDe 220, USB 3.0 7 USB-Port Superspeed

    Meine Software:

    Raspian Stretch, Windows 8.1, Putty, RealVNC 

  • Ein Gedanke: enthält die Variable, die wir mit


    Muster=$(echo -n '12345' | sha1sum |awk '{print $1}')

    erzeugt haben, irgendwelche andere unsichtbare Zeichen als den SHA1-Wert (z. B. ein CR)?

    Ja, echo $Muster |od -c

    Wenn du nichts zu sagen hast, sag einfach nichts.

  • Danke für den Tipp.

    echo $Muster |od -c ergab 40 Zeichen plus \n

    Der folgende Befehl hat auch keine Lösung gebracht:

    grep -e ${Muster:0:40} Textdatei.txt

    ergibt nichts (nach ca. 30s kommt der Pompt).

    und

    grep -ew ${Muster:0:40} Textdatei

    ergibt: grep 07197.....: no such file or directory und nach 30 sec kommt der pompt.

    sehr merkwürdig...

    Meine Projekte:

    Lokaler Unbound DNS-Resolver - Stand 100 %

    Ad-Blocker Pi-Hole - Stand 100 %

    Wöchentliches automatisches SD-Karte-Image auf Raid 1 USB-HDD - Stand 100 %

    Raspi als Kopierstation mit Lide-Scanner und 2 Druckern - Stand 100%

    Streamingclient mit Kodi - Stand 0%

    Meine Hardware:

    RPi B 3+, Rydges SpeedPower PC Netzteil 5V 2,5A / 2500 mAh, Generalkeys Ziffernblock, Canon LiDe 220, USB 3.0 7 USB-Port Superspeed

    Meine Software:

    Raspian Stretch, Windows 8.1, Putty, RealVNC 

  • Zeig doch mal eine Zeile der Datei sowie einen Hexdump davon:

    Code
    head -1 Textdatei.txt
    head -1 Textdatei.txt | hexdump -C

    Kannst Du die gesuchte Zeile mal von Hand suchen und an den Anfang der Datei bringen? Dann noch mal die beiden Befehle und zusätzlich

    Code
    echo ${Muster}
    echo -n ${Muster} | hexdump -C

    Damit sollte sich zumindest feststellen lassen, ob es irgendwelche Unterschiede zwischen ${Muster} und dem Inhalt der Datei gibt.

  • Super viel Dank euch allen, Problem gelöst :freu.

    der tipp war goldrichtig mit den hexdumps:


    head -1 Textdatei.txt

    ergibt:

    0719708D1CC814839BD818FDC27D446652F03383:11849

    head -1 Textdatei.txt | hexdump -C

    ergibt:

    00000000 37 43 34 41 38 44 30 39 43 41 33 37 36 32 41 46 |7C4A8D09CA3762AF|

    00000010 36 31 45 35 39 35 32 30 39 34 33 44 43 32 36 34 |61E59520943DC264|

    00000020 39 34 46 38 39 34 31 42 3a 32 33 31 37 34 36 36 |94F8941B:2317466|

    00000030 32 0d 0a |2..|

    00000033

    echo &{Muster}

    ergibt:

    0719708d1cc814839bd818fdc27d446652f03383


    echo -n ${Muster} | hexdump -C

    ergibt:

    00000000 30 37 31 39 37 30 38 64 31 63 63 38 31 34 38 33 |0719708d1cc81483|

    00000010 39 62 64 38 31 38 66 64 63 32 37 64 34 34 36 36 |9bd818fdc27d4466|

    00000020 35 32 66 30 33 33 38 33 |52f03383|

    00000028

    aha die hexdumps sind nicht gleich, wegen lower and upper case

    also grep -ie ${Muster} Textdatei.txt angewendet und siehe da es funktioniert,

    Danke:bravo2:

    Meine Projekte:

    Lokaler Unbound DNS-Resolver - Stand 100 %

    Ad-Blocker Pi-Hole - Stand 100 %

    Wöchentliches automatisches SD-Karte-Image auf Raid 1 USB-HDD - Stand 100 %

    Raspi als Kopierstation mit Lide-Scanner und 2 Druckern - Stand 100%

    Streamingclient mit Kodi - Stand 0%

    Meine Hardware:

    RPi B 3+, Rydges SpeedPower PC Netzteil 5V 2,5A / 2500 mAh, Generalkeys Ziffernblock, Canon LiDe 220, USB 3.0 7 USB-Port Superspeed

    Meine Software:

    Raspian Stretch, Windows 8.1, Putty, RealVNC 

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!