sh Скрипт с копией и удалением части из имени файла - PullRequest
0 голосов
/ 15 января 2020

Так что я использую скрипт, который копирует указанные c файлы для указания c папок на основе имен файлов. Я хотел бы расширить скрипт так, чтобы после выполнения копирования часть из имени файла удалялась. Вот пример Имя файла выглядит так: Image_000058_19_12_2019_1920x1080.jpg, и мне нравится удалять часть разрешения (_1920x1080) из него. Есть ли способ добавить его в мой скрипт (см. Ниже). Спасибо @ fedx c за скрипт.


cd "$HOME/Downloads"
# for filename in *; do
find . -type f | while IFS= read filename; do # Look for files in all ~/Download sub-dirs
  case "${filename,,*}" in  # this syntax emits the value in lowercase: ${var,,*}  (bash version 4)
     *.part) : ;; # Excludes *.part files from being moved
     move.sh) : ;;
#    *test*)            mv "$filename" "$HOME/TVshows/Glee/" ;; # Using move there is no need to {&& rm "$filename"}
     *test*)           scp "$filename" "imac@imac.local:/users/imac/Desktop/" && rm "$filename" ;;
     *american*dad*)   scp "$filename" "imac@imac.local:/users/imac/Movies/Series/American\ Dad/" && rm "$filename" ;;
     *) echo "Don't know where to put $filename" ;;
  esac
done```


1 Ответ

0 голосов
/ 15 января 2020

Я использую переменную операцию для bash. Пример:

export filename='Image_000058_19_12_2019_1920x1080.jpg' <----Setting name of filename
echo ${filename/_1920x1080/}                            <--Operation with bash variable.
      Image_000058_19_12_2019.jpg                       <--Result of echo

Более подробную информацию можно найти на этой странице: Bash Руководство

...