Альтернативно, скажите rm
начать удаление из каждой родительской папки:
# set dotglob to have * include files beginning with '.'
shopt -s dotglob
rm -r "Parent folder A"/* "Parent folder B"/* ...
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
, если вас устраивает пробный прогон.
Попробуйте также это 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.