В Bash
вы можете использовать Pattern substitution
:
while IFS= read -r filename; do echo $ done < list-of-files-to-compare.txt
Если вы хотите быть более общими вы можете сначала получить расширение с cut
и rev
вроде:
$ ext=$(echo public/assets/images/logos/logo.svg | rev | cut -d. -f1 | rev) $ echo $ext svg
И затем замените его на sed
:
$ echo public/assets/images/logos/logo.svg | sed "s,\.$\$,-orig.$," public/assets/images/logos/logo-orig.svg
Было бы проще, если бы вы добавили .orig
к имени файла, чтобы это logo.svg
стало logo.svg.orig
.