Найти подстроку из массива шаблонов

273
kaligne

У меня есть файл с расширениями:

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

У меня есть массив, содержащий список расширений:

exts=(sh pl py) 

Я хочу удалить расширения в exts из имени файла. Есть ли уловка, чтобы сделать это, я думаю о чем-то в этом роде:

$} 

Это явно не работает.

1

1 ответ на вопрос

0
Aaron

Я хотел бы построить шаблон из вашего extsмассива, а затем использовать 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"