Teilstring aus einem Array von Mustern suchen

334
kaligne

Ich habe eine Datei mit Erweiterungen:

f1=f1.e1.e2.e3.sh.pl.cpp 

Ich habe ein Array mit einer Liste von Erweiterungen:

exts=(sh pl py) 

Ich möchte die Erweiterungen in exts von den Dateinamen entfernen. Gibt es einen Trick dafür? Ich denke an so etwas:

$} 

Es funktioniert offensichtlich nicht.

1

1 Antwort auf die Frage

0
Aaron

Ich würde ein Muster aus Ihrem extsArray erstellen und dann Folgendes verwenden sed:

f1=f1.e1.e2.e3.sh.pl.cpp exts=(sh pl py)   function array_to_regex_alts() { # joins the array elements by \| echo -n "$1"; shift; printf "\|%s" "$@" }  pattern="\.\($(array_to_regex_alts $ )\)"  echo $f1 | sed "s/$pattern//g"