Найти и выдрать
Привет всем.
Есть папка, где куча html файлов в нескольких каталогах, в том числе многократно вложенных. Их куча, руками делать - долго слишком.
Надо из всех html-файлов выбрать ссылки на конкретный сайт (а именно - rapidshare.com - да-да, там файловые ссылки :)), и вбить в отдельный файл.
Понимаю, что делается это с помощью find и grep, но не врублюсь, как составить команду.
У меня получилось
find -maxdepth 6 -name *.html exec grep -i -v -r -e “^.*http://rapidshare\.com/*[0-9]*/.*”
Но не работает (подобное регулярное выражение [после grep] успешно работает по выдиранию таких ссылок из буфера обмена) как надо. Первая часть (find) - делает требуемое - список html-файлов с локальными путями (запускается в папке, которую и надо обработать)..
Как передать вывод в grep (exec или -exec не проходят - find ругается всяко, то параметров у -exec нет, то не понимает вообще)?
И как правильно задать параметры grep`у, чтобы используя получаемый список файлов, они искал внутри них по регулярному выражению (указанная строка для грепа - запускается и висит в процессах, ничего не делая)?
Где ошибки\неточность?
Прошу помощи уважаемого ALL`а.
УПДАТЕ:
Использовал выражение
find -maxdepth 6 -name *.html -print0 | xargs -0 grep -R -n “^.*http://rapidshare\.com/*[0-9]*/.*”* >> /home/user/rapfile.txt
Все скопировалось.
Правда, скопировались не только ссылки, но и теги ссылочные и близлежащие описания (блоки текста). Но убрать ненужное - это уже не проблема (изменение регулярного выражения в более строгую сторону не помогло - все равно блоки копировались; ну и ладно).
Всем большое спасибо.