Wie den Inhalt weiter verarbeiten ?

W

wicht

Grünschnabel
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
 
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
 
Zuletzt bearbeitet:
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
 
Zuletzt bearbeitet:
Hi,

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

Problem:
Er gibt mir immer ein OK aus, obwohl ich in der io.txt an dieser Stelle ein lp eingegeben habe.
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
 
Zuletzt bearbeitet:
Das mit dem Code wird beachtet.

Aber:

Hi,


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 war (wenn die Laenge > 0 ist).

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

Danke wicht
 
Hi,

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

mfg,
bytepool
 
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
 
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
 
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
 
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..."
 
Zuletzt bearbeitet:
Ich würde eher sagen, dass mit dem cut was nicht stimmt, wenn seine Variable die komplette Zeile enthält...

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

Ähnliche Themen

Squid als RPCoHTTPS Proxy für Outlook Anywhere

Problem mit Apache2 + MySQL Server

Squid nur zum maskieren der eigenen IP, nicht für Webserver auf port 80

Server-Monitoring mit RRDTool

Linux Systemadministration v. Jochen Hein

Zurück
Oben