zeichenfolge überprüfen in String

belubaba

belubaba

Tripel-As
Ich habe folgendes Problemchen.

Ich habe eine Variable mit unbestimmten Inhalt.
Je nachdem welche Zeichenfolgen sie enthält will ich sie unterschiedlich bearbeiten.

z.B.: Wenn die Variable den String "hallo" enthält dann Verarbeitung 1.

Wenn die Zeichenfolge nicht den String "hallo" oder den String "hallo" und ein "i" enthält dann Verarbeitung 2.

Das sieht bei mir momentan wie folgt aus.

if [ 1 = `expr "$var" : '.*hallo$' >/dev/null |grep -v i;echo $?` ]; then
dosomesthing
else
dootherstuff
fi

Unglücklicherweise funktioniert das nicht :)

kann mir jemand hier weiterhelfen?

bbb
 
Hallo,
vielleicht so:

var="hallo i" # oder wie auch immer var gesetzt wird
if [ "$var" = "hallo" ] ; then
echo "hallo zweig"
else
echo "hallo iii zweig "
fi


hmh
 
hmhweb schrieb:
Hallo,
vielleicht so:

var="hallo i" # oder wie auch immer var gesetzt wird
if [ "$var" = "hallo" ] ; then
echo "hallo zweig"
else
echo "hallo iii zweig "
fi


hmh

Da habe ich mich glaube ich missverständlich ausgedrückt.

Die Variable enthält nicht entweder "hallo" oder "hallo i" Sondern eine beliebige Zeichenkette die
entweder "hallo" enthält

oder nicht "hallo" enthält oder "hallo und i" enthält.

Beispiel für Fall 1:


var="hallo fred"

Beispiel für Fall 2:

var="sdfsfdsdfsdfsdf"
oder
var="hallo inge"

bb
 
sorry, dann vielleicht so:

var="mit hallo"
echo $var | grep -iqw "hallo"
if [ $? = 0 ] ; then
echo "hallo zweig"
else
echo "kein hallo als einzelnes wort drin"
fi

hmh
 
Hi!

  • '.*hallo$' - dir ist klar, daß hallo am Ende Stehen müßte? (macht das $ ;-)
  • expr "$var" : '.*hallo$' - liefert dir bloß die Anzahl der passenden Zeichen
  • expr "$var" : '.*hallo$' >/dev/null |grep -v i - Wenn du den output nach /dev/null wegwirfst, dann wird der grep nie(!) ein i finden

Ich würde dir daher folgendes vorschlagen:

Code:
if [[ $(echo $var|grep -i hallo|grep -v i > /dev/null;echo $?) -eq 0 ]]
then
	echo "In \"$var\" ist der String \"hallo\" enthalten, aber kein i"
else
	echo "Alle anderen Faelle ;-)"
fi

Ciao
 

Ähnliche Themen

[Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

Queue für copy Script

mittels if abfrage datei nach variabelnwert durchsuchen

If Schleife

Shell-Skript nicht doppelt starten

Zurück
Oben