LINUX.ORG.RU

Сообщения Ronald73789

 

Поиск файлов на сайте без ссылок на них

Здравствуйте!

Дано: Сайт с множеством пользовательских файлов (jpg/png/doc/xls/rar/zip/pdf/...), которые уже не актуальны, ссылки на которые были удалены (но не сами файлы).

Задача: Удалить файлы, на которые нет ссылок в файлах *.php (index.php/.left.menu.php/...).

Предполагаемый алгоритм работы:

1) find ищет пользовательские файлы:

find . -type f ! -regex ".*\.\(php\|html\|htm\|css\|js\|htaccess\|config\)"

2) после первого найденного файла grep ищет упоминания этого файла в *.php файлах рекурсивно

3) если хотябы в одном *.php файле упоминается название найденного файла, то считается, что ссылка на файл есть и его удалять не нужно

4) если найденный пользовательский файл не упоминается ни в одном *.php файле, то событие записывается в *.log и файл удаляется

5) после этого повторяется пункт 1 со следующим найденным пользовательским файлом

Вожможно ли? Или это велосипед и существует что-то готовое? (гугл ничего вменяемого не находит)

 , , , ,

Ronald73789
()

Групповое переименование файлов

Здравствуйте!

Есть прозвольное множество файлов вида:

№ 444-П от 28.11.2014 О внесении изменений в № 22-п от 23.01.13.doc

№ 4-Р от 28.11.2014 О внесении изменений в № 22-р от 23.01.13.docx

№ 2-П от 18.11.2016 Оваприарпарпаррв № 22-п от 13.01.13.doc

Их нужно переименовать в файлы вида:

444-p_28.11.14.doc

4-r_28.11.14.docx

2-p_18.11.16.doc

Т.е. (порядок слева-направо)

1) на входе произвольное количество произвольных символов до первой цифры удаляется

2) после цифр (от одной до четырех, т.е 1,2,3,...29,28,...1294,9999) и символа — удаляется все символы снова до первой цифры.

3) если после символа - была буква П (кириллица), то она заменяется на p (латиница). Если после символа - была буква Р (кириллица), то она заменяется на r (латиница). После замены добавляется символ _.

4) сокращение даты, если она имеет вид дд.мм.гггг в дд.мм.гг.

5) удаление всех символов (включая пробелы) до расширения.

Есть идеи, как реализовать?

накостылил скрипт:

( читать дальше... )

Переименовывает почти как нужно, получились файлы вида:

64-p_22.02.17.r_r_p_p_r_-.doc

366-p_27.02.17.r_p_r_p_r_p_.doc

1267-p_27.02.17.p_25.10.16.461-p_.doc

Осталось только убрать символы после второй точки и двух цифр до расширения, чтобы получилось:

64-p_22.02.17.doc

366-p_27.02.17.doc

1267-p_27.02.17.doc

Скрипт - костыль, может кто подскажет, как правильно?

 , ,

Ronald73789
()

RSS подписка на новые темы