while IFS= read -r line; do
case $line in
*.txt)
some_txt_action
;;
*.gz)
some_gz_action
;;
*.Z)
some_Z_action
;;
*)
echo 'Did not match a pattern'
esac
done <filelist
Или, для более точного сопоставления суффиксов имен файлов,
while IFS= read -r line; do
case $line in
*.txt)
some_txt_action
;;
*.txt.gz)
some_txtgz_action
;;
*.txt.Z)
some_txtZ_action
;;
*)
echo 'Did not match a pattern'
esac
done <filelist
Оба вышеуказанных цикла будут читать строки текста из файла filelist
. Затем он будет выполнять действия на основе конца строки, прочитанной из файла.
some_XXX_action
в коде — это заполнители, которые вы должны заменить фактическими действиями, которые необходимо предпринять при обнаружении строки текста, соответствующей этому конкретному шаблону.