Wie den Inhalt weiter verarbeiten ?

Diskutiere Wie den Inhalt weiter verarbeiten ? im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; Ich habe bereits aus einer Log Datei mit cat filename | cut -d " " -f 6 ein "OK" gefiltert. Nun möchte ich gerne mit diesem "OK" weiter arbeiten....

  1. wicht

    wicht Grünschnabel

    Dabei seit:
    19.11.2009
    Beiträge:
    6
    Zustimmungen:
    0
    Ich habe bereits aus einer Log Datei mit cat filename | cut -d " " -f 6 ein "OK" gefiltert. Nun möchte ich gerne mit diesem "OK" weiter arbeiten.
    Ich möchte dieses "OK" nehmen und eine Abhängikeit herstellen. Wenn also ein "OK" erscheint dann mache dies, ansonsten jenes. Ich habe bereits hier im Forum und im www gesucht aber da ich nicht genau weis wo nach ich eigentlich suche, fällt es mir nicht leichter.?(

    Für ein wenig Hilfe wäre ich dankbar.

    MfG
     
  2. #2 bytepool, 24.11.2009
    Zuletzt bearbeitet: 24.11.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    du suchst eine If-Abfrage:

    Code:
    foo=$(cut -d " " -f 6 foo.txt)
    if [ "$foo" = "OK" ]; then
       echo "OK"
    else
       echo "not OK"
    fi
    
    Edit:
    Hilfe zur Selbsthilfe vergessen: http://tldp.org/LDP/abs/html/

    Edit2:
    Willkommen im Board. :)

    mfg,
    bytepool
     
  3. #3 wicht, 24.11.2009
    Zuletzt bearbeitet: 24.11.2009
    wicht

    wicht Grünschnabel

    Dabei seit:
    19.11.2009
    Beiträge:
    6
    Zustimmungen:
    0
    Danke für die sehr schnelle Antwort.
    Problem:
    Er gibt mir immer ein OK aus, obwohl ich in der io.txt an dieser Stelle ein lp eingegeben habe.

    Code:
    io=$(cut -d " " -f6 io.txt)
    if [ "$io"="OK" ];then
    echo "OK"
    else
    echo "not OK"
    
    fi
    
     
  4. #4 bytepool, 24.11.2009
    Zuletzt bearbeitet: 24.11.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    es waere gut wenn du Code-Tags benutzen koenntest, das macht deine Posts lesbarer.

    Ich nehme an 'lp' ist ein typo und soll 'ok' heissen. Leerzeichen sind in der Shell Programmierung nicht optional (Ausdruck in der Klammer), ausserdem ist der Vergleich case-sensitive (Gross- vs. Kleinschreibung).

    Edit:
    Eventuell kurz zur Erklaerung '[ "$foo"="OK" ]' ist das selbe wie '[ bla ]', d.h. die Bash interpretiert es als einen String, und der Test auf einen String ist immer wahr (wenn die Laenge > 0 ist).

    mfg,
    bytepool
     
  5. wicht

    wicht Grünschnabel

    Dabei seit:
    19.11.2009
    Beiträge:
    6
    Zustimmungen:
    0
    Das mit dem Code wird beachtet.

    Aber:

    wie hilft mir das nun weiter.
    Kannst du es noch mal für mich so ganz auf Dau erklären?

    Danke wicht
     
  6. #6 bytepool, 24.11.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    vergleiche den Code von dir mit dem Code von mir mit dem Gedanken "Leerzeichen" solange bis dir ein Licht aufgeht. ;)

    mfg,
    bytepool
     
  7. daboss

    daboss Kaiser

    Dabei seit:
    05.01.2007
    Beiträge:
    1.297
    Zustimmungen:
    0
    Ort:
    bavaria.germany.europe.world
    Such den Unterschied in euren if-Bedingung-Zeilen ;)
     
  8. wicht

    wicht Grünschnabel

    Dabei seit:
    19.11.2009
    Beiträge:
    6
    Zustimmungen:
    0
    Sorry aber ich finde nix was hier anders sein sollte.
    Hab auch dein foo=$ und foo.txt übernommen, habe dein Code reinkopiert aber ohne Erfolg.

    Mit einem Leerzeichen vor und nach dem Gleichheitszeichen bekomme ich immer "not OK" egal was in der foo.txt steht

    Ohne Leerzeichen immer ein "OK".


    Komm so nicht weiter.

    MfG wicht
     
  9. #9 bytepool, 24.11.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    ich wiederhole mich, aber gut, die Leerzeichen haben gefehlt...

    Was schliessen wir daraus? $foo enthaelt kein "OK". Lasse dir $foo ausgeben, und checke den Inhalt...

    mfg,
    bytepool
     
  10. wicht

    wicht Grünschnabel

    Dabei seit:
    19.11.2009
    Beiträge:
    6
    Zustimmungen:
    0
    Nun sieht es so aus:

    Code:
    server:/tmp/mein_test # more ab.sh
    
    foo=$(cut -d " " -f 6 foo.txt)
    if [ "$foo" = "OK" ]; then
       echo "OK"
    else
       echo "not OK"
    fi
    server:/tmp/mein_test # . ab.sh
    not OK
    server:/tmp/mein_test # more foo.txt
    [13.11.2009 21:19:49 acl_backup] - Ende: "PL" [RC:0]
    server:/tmp/mein_test # vi foo.txt
    server:/tmp/mein_test # . ab.sh
    not OK
    server:/tmp/mein_test # more foo.txt
    [13.11.2009 21:19:49 acl_backup] - Ende: "OK" [RC:0]
    server:/tmp/mein_test # . ab.sh
    not OK
    server:/tmp/mein_test #
    
    
    ja und foo=$(cut -d " " -f 6 foo.txt)
    echo $foo
    bringt mir das was auch immer ich in der foo.txt eingegeben habe.


    MfG wicht
     
  11. #11 bytepool, 24.11.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    du vergleichst OK und "OK", die Strings sind auch nicht gleich...

    Dann musst du aus dem String in der If-Abfrage '"OK"' machen, wenn das so funktionieren soll.

    mfg,
    bytepool
     
  12. #12 daboss, 24.11.2009
    Zuletzt bearbeitet: 24.11.2009
    daboss

    daboss Kaiser

    Dabei seit:
    05.01.2007
    Beiträge:
    1.297
    Zustimmungen:
    0
    Ort:
    bavaria.germany.europe.world
    Ich würde eher sagen, dass mit dem cut was nicht stimmt, wenn seine Variable die komplette Zeile enthält...
    "...bringt mir, was ich in der Textdatei eingegeben habe..."
     
  13. #13 bytepool, 24.11.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Ich glaube da hat er sich nur ungluecklich ausgedrueckt, $foo enthaelt dann "OK" (und das meinte er IMHO auch), was natuerlich nicht gleich OK ist, das ist das Problem.

    mfg,
    bytepool
     
  14. wicht

    wicht Grünschnabel

    Dabei seit:
    19.11.2009
    Beiträge:
    6
    Zustimmungen:
    0
    Ich habe es mit cut -c 43-44 gelöst.
    Alles andere hat irgendwie nicht funktioniert.

    Danke erstmal für die schnelle Hilfe. Ich denke ich werde nun öfter vorbeischauen.
     
Thema:

Wie den Inhalt weiter verarbeiten ?

Die Seite wird geladen...

Wie den Inhalt weiter verarbeiten ? - Ähnliche Themen

  1. Mailinhalt weitergeben Qmail an php-datei

    Mailinhalt weitergeben Qmail an php-datei: Hallo, habe Suse Linux 9.x und den Mailserver Qmail auf meinem vServer. Habe dort root-Zugriff. Nun wollte ich, dass wenn eine Mail reinkommt,...
  2. 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...
  3. 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...
  4. 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...
  5. 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...