1

Bash: Wie funktioniert ein Stringvergleich mit einem Muster in einem Skript?

Frage von Cuchulainn Cuchulainn

Ich möchte gerne einen String mit einem Muster vergleichen. Und zwar will ich mit einer If-Anweisung alle Strings herausfiltern, die beispielsweise mit abc beginnen.

Ich habe so etwas versucht:

if [ $i="^abc.*$ ] then

blablabla

fi

In dem Skript meines Professors steht etwas, dass man bei einem Mustervergleich [[: anwenden müsste. Das Skript ist aber grottenschlecht - es ist kein Beispiel dabei und ich bekomme es einfach nicht hin. Es kann doch nicht so schwer sein, oder?

Fragen zu gleichen Themen finden

Antworten (3)

  • 1
    Hilfreichste Antwort ausgezeichnet vom Fragesteller
    Antwort von a1exander a1exander

    Versuche es mal if [ -z "${i/abc*}" ] ; then

    ... ${i/abc} löscht im den String alles, was auf abc passt, wenn das am Anfang stand, ist dann der String leer.

    Mit [[ kenne ich mich leider nicht aus.

    Kommentar von Cuchulainn CuchulainnCuchulainn

    Vielen Dank. Wenn ich das -z weglasse, macht es genau das, was ich brauche. :D

  • 1
    Antwort von harveyoswaldt harveyoswaldt

    bei Perl würde es heissen: if ($i =~ /^abc/) :)

    Kommentar von Cuchulainn CuchulainnCuchulainn

    Danke. Mit Perl muss ich für diese Klausur auch arbeiten können. Dann stehe ich mit Sicherheit bei irgendeiner Übung auch mal vor diesem Problem.

  • 0
    Antwort von Cuchulainn Cuchulainn

    Vor dem blablabla sollte eine Raute als Kommentarzeichen stehen.

Diese Frage

Verwandte Fragen

Noch nicht den richtigen Rat gefunden?

Einfach und schnell viele hilfreiche Ratschläge von Deutschlands aktivster Ratgeber-Community erhalten!

Einfach und schnell einen Tipp erstellen und Ihren guten Rat mit anderen teilen!

Einfach und schnell ein Video hochladen und anschaulichen Rat an alle geben!

Die unter gutefrage.net angebotenen Dienste und Ratgeber Inhalte werden nicht geprüft. Die Richtigkeit der Inhalte wird nicht gewährleistet. Rechtliche Hinweise finden Sie hier.