Archiv verlassen und diese Seite im Standarddesign anzeigen : String zerpflücken
Hi,
ich habe ein kleines Problem. Und zwar lese ich mittels read Zeilenweise aus einer Datei. Nun möchte ich einen Stringvergleich machen umd eine Abbruchsbedindung zu erreichen.
Also wenn der String mit "Ich bin ein String" beginnt, soll er abbrechen. Alles was nach dem String noch in der Zeile steht, sollte allerdings ignoriert werden.
Geht sowas ohne großen Aufwand?
oafish
mwanaheri
02-04-2004, 08:33
es geht bestimmt auch einfacher, aber
grep "^Ich bin ein String" (zu durchsuchendes)
sucht nach "Ich bin ein String" am Zeilenanfang.
Erfolg oder Nichterfolg sind dann in der Rückgabevariablen von grep zu finden (glaube ich)
Schon, aber grep erwartet ein File und keine Variable!
Das ist mein Problem!
oafish
echo $VARIABLE | grep "^blabla"
Oh, stimmt ja :D
Sorry, war mein Fehler...
oafish
Ähm, schön, nur besteht mein Problem weiterhin.
Und zwar, nehmen wir an, mein String sieht folgendermaßen aus:
Hallo, ich bin ein ganz neuer Test."
Nun möchte, dass er wenn er in der Zeile "Hallo, ich bin ein" steht, abbricht. Mit dem grep hole ich mir alles. Gibt es in der Bash sowas wie startwith oder dergleichen? Damit ich einfach das Anfangswort überprüfen kann ob es übereinstimmt?
oafish
mwanaheri
02-04-2004, 10:12
Original geschrieben von oafish
Ähm, schön, nur besteht mein Problem weiterhin.
Und zwar, nehmen wir an, mein String sieht folgendermaßen aus:
Hallo, ich bin ein ganz neuer Test."
Nun möchte, dass er wenn er in der Zeile "Hallo, ich bin ein" steht, abbricht. Mit dem grep hole ich mir alles. Gibt es in der Bash sowas wie startwith oder dergleichen? Damit ich einfach das Anfangswort überprüfen kann ob es übereinstimmt?
oafish
s.o.
wenn du nach ^Hallo grepst, ist grep nur erfolgreich, wenn Hallo am Zeilenanfang steht.
Findet grep was, ist der exitstatus 0, findet es nichts, ist der Exitstatus 1. Der Exitstatus ist in der Variablen $? gespeichert, kann also von deinem Programm ausgewertet werden.
Um nach einer längeren Phrase zu suchen, kannst du auch "^Hallo, ich bin" eingeben.
Hi,
ich machs jetzt mit cut. Funktioniert auch ganz gut :)
Danke
oafish
VARIABLE="blabla123bla"
if echo $VARIABLE | grep -q "^blabla"
then echo "blabla am Anfang gefunden"
else echo "blabla nicht am Anfang gefunden"
fi
Das wolltest Du wohl !)
@fork,
genau das wäre es gewesen :)
oafish
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.