LINUX.ORG.RU

на коленке делал, без проверки

grep 'href=\'http://' * | sed s/'</a>'// | awk -F\> '{print $2}'


смысл:
грепаем нужные строки, седом удаляем закрывающий тег, авком разбиваем сткроку на поля (разделитель >) и выводим вторую часть

скорее всего напутал с ' и \

outsider ★★ ()
Ответ на: комментарий от outsider

Может тогда вместо awk cut заюзать лучше?

s/'</a>'//

s#</a>##g

Вроде тогда ничего экранировать не надо.

Можно еще с pcregrep загнаться.

Radjah ★★★★★ ()
Ответ на: комментарий от outsider

а вот про такое не знал

Можно использовать и другие символы, чтобы не экранировать регулярки. Читать так проще, дебажить тоже.

r3lgar ★★★★★ ()
Ответ на: комментарий от iNdexoiD

Так и не должно. Экранировать кавычками нельзя, нужно экранировать только бэкслэшами.

r3lgar ★★★★★ ()

HTML файлы мусор содержат?

Если нет, то должно хватить банального постпросмотра

echo '<a href='http://my.site.com/random_domain.com'>RANDOM_DOMAIN.COM</a>' | grep -oPe '[^><]*(?=</a>)'
Deleted ()
function myhrefs
{
   echo 'cat //a/@href' | xmllint --html --shell $1 2>/dev/null | grep -Po '\s*href\s*=\s*"\K.*(?=")'
}

export -f myhrefs

find . -name '*.html' | xargs bash -c 'myhrefs "$@"'
anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.