Переименовать файлы на основе списка

Альтернативно, скажите rm начать удаление из каждой родительской папки:

# set dotglob to have * include files beginning with '.'
shopt -s dotglob
rm -r "Parent folder A"/* "Parent folder B"/* ...
0
29.09.2018, 02:41
2 ответа
fringe_copy(){
        local IFS=,
        while read num title; do
                f=Fringe.S03E$num.mkv
                if [ -f "$f" ]; then
                        echo mv "$f" "${f%.mkv}.$title.mkv"
                fi
        done
}
fringe_copy <list_of_files

Вам придется удалить echoдо mv, если вас устраивает пробный прогон.

4
28.01.2020, 02:16

Попробуйте также это awkпредложение

ls Fringe* |
awk '
NR == FNR       {EP[$1]=$2
                 next
                }
                {IX=substr($2, length($2)-1, 2)
                 $2 = $2 OFS EP[IX]
                }
1
' FS=, episodes.csv FS=. OFS=. -
Fringe.S03E01.Olivia.mkv
Fringe.S03E02.The Box.mkv
Fringe.S03E03.The Plateau.mkv

После считывания файла заголовков эпизодов в массив замещения он обрабатывает результаты lsи вставляет соответствующий заголовок на основе числа в последних двух символах $2.

1
28.01.2020, 02:16

Теги

Похожие вопросы