Использование sed для удаления тега html <a> - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть функция, которая извлекает абзац с веб-сайта.Я уже удалил все HTML-теги, хотя теги <a> все еще существуют.

function getExplanation ()
{
    link="https://apod.nasa.gov/apod/ap"$(echo $1 | cut -c 3-)".html"

    content=$(curl -s $link | sed -n -e '/<b> Explanation: <\/b>/,/<p> <center>/p' | sed -e    's/<[^>]*>//g')

    echo $content
}


 getExplanation "20190102"

Объяснение: Великая туманность в Орионе - интригующее место.Видимый невооруженным глазом, он выглядит как небольшое нечеткое пятно в созвездии Ориона <a href="http://www.astro.wisc.edu/~dolan/constellations/ constellations/Orion.html">.Но на этом изображении, четырехцветной мозаике иллюзорного цвета, сделанной в различных полосах инфракрасного света <a href="http://coolcosmos.ipac.caltech.edu/cosmic_classroom/ir_tutorial/" > с обсерваторией Земли <a href="http://www.nasa.gov/mission_pages/WISE/mission/index.html" > WISE, видно, что туманность Ориона представляет собой шумную <a href="http://www.jpl.nasa.gov/news/news.php?release=2013-046" > окрестность недавно сформировавшихся звезд, горячихгаз и темная пыль.Силой, лежащей в основе туманности Ориона (M42), являются звезды звездного скопления Трапеции, видимые вблизи центра показанного изображения.Оранжевое свечение, окружающее яркие звезды, изображенные здесь, является их собственным звездным светом, отраженным сложными нитями пыли, которые покрывают большую часть региона.Текущий облачный комплекс Ориона, включающий туманность Конская Голова, будет медленно рассеиваться в течение следующих 100 000 лет.

Я уже пробовал это sed 's/<a href=.*>//g', хотя результат остается тем же.

1 Ответ

1 голос
/ 20 сентября 2019

Иногда вы не можете направить вывод напрямую в другую команду;в частности, в прошлом я сталкивался с проблемами с curl, когда передается частичное содержимое.Я полагаю, что решение здесь будет заключаться в том, чтобы отделить ваши sed команды вместо того, чтобы объединить их в одну строку:

html_content=$(curl -s $link | sed -n -e '/<b> Explanation: <\/b>/,/<p> <center>/p')
content=$(echo $html_content | sed -e 's/<[^>]*>//g')

Попробуйте это и посмотрите, поможет ли это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...