Сообщение
Hunk #4 FAILED at 1013.
отражается в отклонении, которое показывает номера строк, которые он пытался исправить. Этот фрагмент может применяться в текущей версии к строке 1006 из x.c
, за исключением того, что он был сбит с толку пустой строкой :
XColor xmousefg, xmousebg; if (!(xw.dpy = XOpenDisplay(NULL)))
или, показывая номера строк (текстовый редактор):
1000 xinit(int cols, int rows) 1001 { 1002 XGCValues gcvalues; 1003 Cursor cursor; 1004 Window parent; 1005 pid_t thispid = getpid(); 1006 XColor xmousefg, xmousebg; 1007 1008 if (!(xw.dpy = XOpenDisplay(NULL))) 1009 die("can't open display\n"); 1010 xw.scr = XDefaultScreen(xw.dpy); 1011 xw.vis = XDefaultVisual(xw.dpy, xw.scr);
Отклонение " -" в первом столбце указывает на то, что он пытался удалить строки. Вы можете просто отредактировать их, предполагая, что другие изменения в файле были правильными (, т. е. эта инициализация может быть избыточной, а может и нет, в зависимости от даты -до -файла исправления )..
Сzsh
:
autoload zmv
zmv -n '(*.s<->e<->).*(.mp4)' '$1$2'
Снимите-n
(сухой -прогон )при удовлетворительном состоянии.
Если у вас есть доступ к perl-rename
(, называемому rename
в некоторых дистрибутивах Linux, prename
в других и perl-rename
в третьих ), вы можете выполнить:
$ rename -n 's/(.+?\..+?\.).*\.(.*)/$1$2/s' *mp4
myvideo.s01e01.episode.title.here.mp4 -> myvideo.s01e01.mp4
myvideo.s01e02.episode.title.here.mp4 -> myvideo.s01e02.mp4
Это просто напечатает то, что должна сделать команда, фактически ничего не переименовывая. Если вывод соответствует вашим ожиданиям, запустите команду без -n
, чтобы фактически переименовать файлы.
Если у вас нет perl-rename
и имена файлов не содержат символов новой строки и все их байты составляют допустимые символы в локали пользователя, вы также можете сделать это непосредственно в оболочке (здесь, предполагаяzsh
-подобная оболочка и BSD -совместимая sed
реализация):
for f in *mp4; do
newName=$(sed -E 's/(([^.]*\.){2}).*\.([^.]*)$/\1\3/' <<<"$f");
echo mv -- "$f" "$newName";
done
Если это выглядит правильно, запустите снова без echo
.