Файл массы MMV переименовывает

Это могло бы быть проблемой с WiFi, не Fedora вообще. Проверьте следующее:

  • Какие-либо другие маршрутизаторы WiFi вокруг? Проверьте вывод iwlist wlan0 scan (принятие Вашей карты является wlan0), посмотрите, использует ли Ваш маршрутизатор переполненный канал. Если так, ищите неиспользованный (или один с меньшим количеством/хуже сигнала) и реконфигурируйте маршрутизатор
  • Посмотрите, зависит ли это от положения машины. Металл действительно экранирует сигнал WiFi, другие материалы могут поглотить сигнал; возможно, должен был бы переместить маршрутизатор. Возможно, его антенны не находятся в лучшем положении?
  • Есть ли какой-либо возможный источник электромагнитных помех? Плохое флуоресцентное освещение, возможно?
6
16.12.2014, 00:52
3 ответа

Проходите через Lib / Quoteg.c В исходном козелете выявляет, что цитирование зависит от вашего Locale . В моем Minux Mint 17 ( EN_GB.UTF-8 ) У меня есть влево, так и правая цитата то же самое ( , тогда как система с en_us.utf-8 Поскольку локалий имеют обратную ответственность перед (слева) именем файла.

Эта статья имеет какой-то фон

-121--139833-

TL; DR

rename -n 's/^((\w+\.+){3})(.).*\.(.*)\.(.).*\.(.*)\.\-(\..*)$/$1$3$4$5$6$7/' *
  • \ W + соответствует одному или нескольким символам слова, то есть [A-ZA-Z0-9 _] + [1]
  • \. + соответствует одному или нескольким точкам (. ) символ [2]

    Примечание , что \. соответствует . характер. Нам нужно использовать \. представлять . как . имеет особое значение в Regex. \ известен как код Escape, который восстанавливает исходное буквальное значение следующего символа.

  • (\ W + \. +) {3} соответствует максимум 3 раза любых точностью выше [1], [2] группы символов, начиная с начала ( ^ соответствует началу имена) имени файлов.
    Это будет соответствовать или вернуться my.program.name.

    Примечание , что дополнительные скобки вокруг регеляции используются для группировки сопоставления. Матч группировки начинается с ( и заканчивается ) и используется для обеспечения так называемого обратных ссылок . Задняя ссылка содержит соответствующую подковую строку, хранящуюся в специальных переменных , 1 , $ 2 , ... , $ 9 , где 1 доллар содержит Подстрока соответствует первой паре скобок и так далее.

  • . Метахарактерная точка (.) Соответствует любому одному символу. Например ... соответствует любым 3 символам. Так что с этим (.) Мы подходим к первому символу сезона , которое оно составляет S .

  • . * \. Соответствует всем после того, как одна четверть превышает до первой . если видно. Как видите, мы не захватываем его как группу матчей, потому что мы хотим удалить это с нашего имени, где это соответствует Eason. .

  • (. *) соответствует всем после вышестоящего матча. Это соответствует NN . Скобки, используемые здесь, потому что мы хотим сохранить это в файле имени.

  • \. соответствует одному точку после приведенного выше совпадения. . После первого Nn .

  • (.) [) Опять с этим, мы подходим к первому одному символу после вышестоящего матча. Это вернутся только е .

  • . * \. будет сопоставить все после приведенного выше совпадения до первой . . Будет соответствовать PiSode. .

  • (. *) совпадает с чем-либо после последней сопоставленной точки сверху. Это будет соответствовать второму NN .

  • \. \ - соответствует точе . , а затем дарем - . Будет соответствовать или вернуться .-

  • и, наконец, (\. *) $ соответствует одной точке . И все после этого, что заканчивается до конца имени файла. $ соответствует концу имя файла или входной строки.

Примечание. Удалить -N , чтобы выполнить фактическое переименование.

5
27.01.2020, 20:28

Попробуйте сделать это с Perl Rename :

rename -n 's/
            (.*?s)eason\.(\d{2})\.episode\.(\d{2})\.-\.(.*\.avi)
            /$1$2e$3.$4/x
' my.program.name*

Как только вы удовлетворены тем, что это делает то, что вы хотите, удалите -N , чтобы фактически выполнить переименование.

0
27.01.2020, 20:28

Вы можете сделать его чистым Bash:

netikras@netikras-netbook /tmp $ ls -l /tmp/*.*season.*episode.*avi
-rw-r--r-- 1 netikras netikras 0 Grd 16 10:29 /tmp/my.program.name.season.05.episode.07.-.title.avi
-rw-r--r-- 1 netikras netikras 0 Grd 16 10:29 /tmp/my.program.name.season.05.episode.32.-.title.avi
-rw-r--r-- 1 netikras netikras 0 Grd 16 10:29 /tmp/my.program.name.season.05.episode.35.-.title.avi
-rw-r--r-- 1 netikras netikras 0 Grd 16 10:29 /tmp/my.program.name.season.NN.episode.NN.-.title.avi

netikras@netikras-netbook /tmp $ for i in *.*season.*episode.*avi; do nn="${i/season./s}"; nn=${nn/.episode./e}; nn=${nn/.-./.}  ; echo "moving: $i ----> $nn"; mv $i $nn; done
moving: my.program.name.season.05.episode.07.-.title.avi ----> my.program.name.s05e07.title.avi
moving: my.program.name.season.05.episode.32.-.title.avi ----> my.program.name.s05e32.title.avi
moving: my.program.name.season.05.episode.35.-.title.avi ----> my.program.name.s05e35.title.avi
moving: my.program.name.season.NN.episode.NN.-.title.avi ----> my.program.name.sNNeNN.title.avi

Таким образом, вам не нужно вызывать какие-либо внешние приложения, то есть SED / AWK, чтобы выполнить работу. Bash может легко изменять строки со встроенным инструментом. Вы просто замените 3 части вашего имени файла и создаете новый. Тогда все, что осталось, это назначить новое имя файлу. Нет необходимости изучать любые из этих жутких Regexes, чтобы сделать простую работу.

1
27.01.2020, 20:28

Теги

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