Я пытаюсь извлечь ссылку (href) и текст внутри тега <a>
для количества ссылок на html-странице.
Мне нужны только определенные ссылки, которые соответствуют подстроке.
Пример моего html:
<a href="/this/dir/1234/">This should be 1234</a> some other html
<a href="/this/dir/1236/">This should be 1236</a> some other html
<a href="/about_us/">Not important link</a> some other html
Я использую Xidel, что позволяет мне избегать регулярных выражений,Это кажется самым простым для работы.
То, что у меня есть до сих пор:
xidel -e "//a/(@href[contains(.,'/this/dir')],text())"
В принципе это работает, но остаются две проблемы:
- Iполучить данные, разделенные переводом строки.Я хотел бы, чтобы он был в одной строке.
- Каждый текст ссылки возвращается, поэтому я также получаю текст "Не важная ссылка".
Какой рекомендуемый способ получениявывод как
/this/dir/1234 ; This should be 1234
/this/dir/1236 ; This should be 1236
Цените любые отзывы / советы.
edit :
Решение, предоставленное Мартином, было на 99% там.Новые строки не выводились, поэтому я использую awk для замены фиктивного текста на новые строки.
note : Я нахожусь в Windows.
xidel myhtml.htm -e "string-join(//a[contains(@href, '/this/dir')]!(@href || ' ; ' || .), 'XXX')" | awk -F "XXX" "{$1=$1}1" "OFS=\n"