Inhalt aus File lesen und vergleichen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von blueunderground, 13.10.2005.

  1. #1 blueunderground, 13.10.2005
    blueunderground

    blueunderground Mitglied

    Dabei seit:
    13.10.2005
    Beiträge:
    28
    Zustimmungen:
    0
    Hi Zusammen,

    folgendes schreibe ein Skript wo ich zwei Werte vergleichen möchte, dazu erzeuge ich das aktuelle Datum:

    ##
    datum1= date '+%d.%m.%Y'

    und lese eine weitere Variable ein (ist das korrekt?)
    datum2= cut -f1 file1

    möchte nun dieses Ergebnis mit einem anderen Datum welches in file1 steht vergleichen.

    if [ "$datum1" = "$datum2" ]; then
    echo "OK"
    else
    echo "FALSCH"
    fi
    ##

    Leider sagt er mir immer OK, auch wenn das Datum sich in file1 mit dem aktuellen unterscheidet.

    Habt ihr Vorschläge?
    Bin wie man erkennt ein absoluter Newbie :-)
    Vielen Dank für Eure Hilfe

    Blue
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Hallo blueunderground

    willkommen im U-Forum.
    Die Erstellung von datum1 und datum2 ist falsch.

    Code:
    datum1=$(date '+%d.%m.%Y')
    datum2=$(cut -f1 file1)
    Ansonsten sieht alles richtig aus. Wie sieht file1 aus?

    Gruss, Phorus
     
  4. #3 Wolfgang, 13.10.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Ich würde beim cut mal den Feldtrenner (-d) mit angeben.
    Wie Phorus schon sagte, ist natürlich interessant wie file1 daherkommt.
    Im Falle von Space würde das also bei cut so aussehen:
    Auch hier wieder die Backticks oder eben $(command), was übersichtlicher ist.
    datum2=$(cut -d" " -f1 file1)
    Da du beidesmal die Backticks bzw $(..) vergessen hast, sind beide Variablen leer und somit lätürnich gleich. ;)
    Gruß Wolfgang
    PS Kleiner Tipp, lass dir die Variablen im Zweifelsfall immer ausgeben.
     
  5. #4 blueunderground, 13.10.2005
    blueunderground

    blueunderground Mitglied

    Dabei seit:
    13.10.2005
    Beiträge:
    28
    Zustimmungen:
    0
    Ja Danke ! jetzt klappt es.

    Aber vielleicht könnt ihr mir ja noch dabei helfen.
    Möchte aus einer Datei (quelle.txt) aus der dritte Zeile bestimmte Zeichen auslesen und anschließend mit einer IF abfrage überprüfen.


    ##
    Aufbau quelle.txt

    Das ist eine Testquelldatei
    Ich hoffe es ist ok für Euch
    ich möchte nun dieses Datum auslesen 13.10.2005 und nichts anderes.
    ##

    13.10.2005
    möchte ich nun jetzt haben und weiter in einer IF-Abfrage verarbeiten.

    mit grep kann ich ja nur immer komplette Zeilen auslesen.

    Danke
    Blue
     
  6. #5 ninguno, 13.10.2005
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    head -n3 quelle.txt|tail -n1|cut -d" " -f7
     
  7. #6 Wolfgang, 13.10.2005
    Zuletzt bearbeitet: 13.10.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Das funktioniert aber nur, wenn es der string immer unverändert ist.
    Ein Versuch mal nicht mit Perl ;)
    Code:
    DATUM=$(sed -ne '3!d' -e'~s/^.*\([0-9][0-9]\.[0-9][0-9]\.[0-9][0-9][0-9][0-9]\).*/\1/gp' test.txt)
    echo $DATUM;
    
    Das findet auf Zeile 3 das erste Datum der Form DD.MM.YYYY, wobei die Anzahl der Wörter die davor oder dahinter stehen egal sind.
    Ich habe diese Form aus Kompatilitätsgründen gewählt, da es zu viele verschiedene sed gibt.
    Mit perl geht das näturlich auch ;) aber das überlass ich jemand Anderen :D
    HTH
    Gruß Wolfgang

    EDIT

    Ich sehe gerade, dass
    egrep (GNU grep) 2.5.1
    Das auch kann:
    Also Variante 2:
    DAT=$(head -n3 test.txt |tail -1| egrep -o '([0-9][0-9]\.){2}[0-9]{4}')
     
  8. #7 ninguno, 13.10.2005
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    das ist schon klar, aber ich kann schliesslich nur von den daten ausgehen, die der op uns zur verfügung stellt.
    übrigens funktioniert deine lösung auch nur wenn's immer in der 3. zeile steht :D
     
  9. #8 Wolfgang, 13.10.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    @ninguno
    Schon klar, ich wollte auch nur darauf hinweisen, falls die Daten nur fiktiv waren
    und real eventuell anders aussehen.
    Die dritte Zeile war aber klar gefordert, lässt sich auch leicht anpassen.
    Aus der Gesamten Datei das erste zweite oder neunte Datum rausfischen ist auch kein Problem.

    Gruß Wolfgang
     
  10. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  11. #9 ninguno, 13.10.2005
    ninguno

    ninguno Tripel-As

    Dabei seit:
    13.05.2005
    Beiträge:
    162
    Zustimmungen:
    0
    @Wolfgang_1:
    alles klar, war nur spass :)
     
  12. #10 blueunderground, 13.10.2005
    blueunderground

    blueunderground Mitglied

    Dabei seit:
    13.10.2005
    Beiträge:
    28
    Zustimmungen:
    0
    Vielen, vielen Dank Euch beiden, das klappt super !

    Ein gutes, schnelles Forum :-)

    Ich komme wieder....
    Blue
     
Thema:

Inhalt aus File lesen und vergleichen

Die Seite wird geladen...

Inhalt aus File lesen und vergleichen - Ähnliche Themen

  1. Inhalt von 3 Files in eines

    Inhalt von 3 Files in eines: Hallo ich hoffe ich kan mein problem einfach erklären. ich habe 2 Dateien, in der einten Datei sagen wir strassen.txt, sind strassennamen...
  2. Inhalte mit grep mit Nummer in File schreiben

    Inhalte mit grep mit Nummer in File schreiben: Hi Zusammen, habe eine Datei Names file.txt. INHALT (file.txt) ---------- Dies ist ein Test. Das ist schön. Dieser Test ist super....
  3. Txt Inhalt bearbeiten/ergänzen

    Txt Inhalt bearbeiten/ergänzen: Hi, ich habe folgendes Problem. In meiner txt habe ich mehrere Links untereinander aufgefuehrt. http://www.link1.de/ordner...
  4. Dateiinhalte vergleichen - Neue Sätze dann ausgeben

    Dateiinhalte vergleichen - Neue Sätze dann ausgeben: Liebe Forumsmitglieder, ich benöte mal wieder Eure Hilfe: Ich möchte 2 Dateien vergleichen. Datei-1 hat z.B. 100 Datensätze mit mehreren Feldern...
  5. Timestamp an Inhalt einer Textdatei anfügen

    Timestamp an Inhalt einer Textdatei anfügen: Hallo, ich als neuer, unerfahrener Nutzer von Linux und der bash hätte folgende Frage. Und zwar würde ich gerne mit einem command den Zeitstempel...