Vergleich bei unterschiedlicher Schreibweise eines übergebenen Parameters

M

mercurius

Grünschnabel
Hallo,

ich bin unerfahren in der Script-Erstellung und suche für folgendes Problem eine Lösung:

Als Aufrufparameter erwartet mein Script den Namen einer Datei. Die Datei muß eine Rar-Datei sein, was ich natürlich im Script überprüfen will. Bisher erledige ich das durch den Vergleich der Dateiendung mit dem Begriff "rar". Wenn die Datei aber "xxx.Rar" oder "xxx.RAR" heißt, schlägt der Vergleich natürlich fehl. Wie erreiche ich, dass alle Schreibweisen des Begriffs als gültig akzeptiert werden? Gibt es so etwas wie "upper" oder "lower" , also
Umwandlung aller Buchstaben eines Wortes (einer Variablen) in Groß- bzw. Kleinbuchstaben auch innerhalb der Bash? Die Suchfunktion hat mir leider nicht weitergeholfen.

Danke für eure Tipps.

mercurius

PS: Geht's irgendwie mit filetype??
 
da gibts etliche möglichkeiten ... mal ein beispiel:

Code:
sh-4.2$ input="bla.rAr";echo "${input##*.}" | egrep -ie '(^rar$|^zip$|^tgz$|^7z$)'
rAr
sh-4.2$ input="bla.rAr";echo "${input##*.}" | egrep -ie '(^rar$|^zip$|^tgz$|^7z$)'| tr [:lower:] [:upper:]
RAR
sh-4.2$ input="bla.rAr";echo "${input##*.}" | egrep -ie '(^rar$|^zip$|^tgz$|^7z$)'| tr [:upper:] [:lower:]
rar
sh-4.2$

für dich ist dann wohl in erster linie das
Code:
tr [:upper:] [:lower:]
interessant
 
Zuletzt bearbeitet:
Innerhalb der Bash kann man RegEx bemühen:
Code:
if [[ $file =~ .*\.[rR][aA][rR] ]]
then
  echo $file
fi
 
Danke für die schnelle Hilfe!

mercurius
 
Zurück
Oben