Inhalt aus File lesen und vergleichen

Diskutiere Inhalt aus File lesen und vergleichen im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Hi Zusammen, folgendes schreibe ein Skript wo ich zwei Werte vergleichen möchte, dazu erzeuge ich das aktuelle Datum: ## datum1= date...

  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. 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
     
  3. #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.
     
  4. #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
     
  5. #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
     
  6. #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}')
     
  7. #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
     
  8. #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
     
  9. #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 :)
     
  10. #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. Dateiinhalt verdoppeln

    Dateiinhalt verdoppeln: Hallo, ich möchte den Inhalt einer Datei verdoppeln, Kopf- und Endesatz ausgenommen. Danach muss im Endesatz die Datensatzanzahl angepasst werden...
  4. Dateien in Unix finden, die mehrere Strings beinhalten

    Dateien in Unix finden, die mehrere Strings beinhalten: Hallo liebe Leute, ich versuche über die Shell unter Unix alle Dateien ausfindig zu machen, die sowohl den SuchstringA als auch den SuchstringB...
  5. 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...