Wie den Inhalt weiter verarbeiten ?

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von wicht, 24.11.2009.

  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. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #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
     
  4. #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
    
     
  5. #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
     
  6. 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
     
  7. #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
     
  8. daboss

    daboss Keine Macht für niemand!

    Dabei seit:
    05.01.2007
    Beiträge:
    1.294
    Zustimmungen:
    0
    Ort:
    sydney.australia.world
    Such den Unterschied in euren if-Bedingung-Zeilen ;)
     
  9. 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
     
  10. #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
     
  11. 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
     
  12. #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
     
  13. #12 daboss, 24.11.2009
    Zuletzt bearbeitet: 24.11.2009
    daboss

    daboss Keine Macht für niemand!

    Dabei seit:
    05.01.2007
    Beiträge:
    1.294
    Zustimmungen:
    0
    Ort:
    sydney.australia.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..."
     
  14. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  15. #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
     
  16. 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. 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...
  3. 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...
  4. 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...
  5. Wie komme ich an den Inhalt des Inhalts einer Variable?

    Wie komme ich an den Inhalt des Inhalts einer Variable?: Hallo Zusammen, ich möchte meine Buildumgebung vereinfachen und besser zu automatisieren. Ein Skript schreibt Pfade in die env und diese...