Я пытаюсь написать команду оболочки (Linux), которая будет искать все субтитры, заканчивающиеся на NAME.el.srt, и сделать символическую ссылку в формате NAME.srt (удаление .el из этого).Использовать символическую ссылку для изменения формата субтитров
Использование:
/usr/bin/find /volume1/public/test -follow -type f \(-iname "*.el.srt" \)
дает мне следующие результаты:
/volume1/public/test/Arrow - S01E04.el.srt
/volume1/public/test/Arrow - S01E01.el.srt
/volume1/public/test/Arrow - S01E02.el.srt
/volume1/public/test/Arrow - S01E03.el.srt
Я не хочу их переименовывать. Я просто хочу создать символическую ссылку в той же папке, что и оригиналы.
я думал, что собирался быть легкий удар ... но через 4 часа я просто ищу кого-то более опытного, чтобы помочь мне :) Наконец-то я нашел:
IFS=$(echo -en "\n\b");
for j in $(find /volume1/video -follow -type d -name "*");
do
cd $j;
for i in $(find $j -name "*.el.srt" -maxdepth 1 -exec basename {} \;);
do
rname=$(echo "$i" | sed -e 's/\.el\.srt/\.srt/g');
ln -s "$i" "$rname";
done
done
Спасибо iamuser для указания в нужном направлении :)
Это дает мне следующие ошибки и создает некоторые сумасшедшие символические ссылки ... пер: ./Arrow: Файл существует пер -: Файл существует пер: ./Arrow: Файл существует пер -: Файл существует ln: ./Arrow: Файл существует ln: -: Файл существует ' – user2733322
Отредактирован мой ответ. Вам нужно 'IFS'. – iamauser
Да, теперь это работает. Можно ли использовать его с помощью команды find (как я уже упоминал выше), чтобы создать cron, который будет запускаться один раз в день? Я думаю, что с вашим решением я должен запускаться отдельно в каждой папке (и у меня есть MANY: O) – user2733322