Если у нас есть следующее, как мы можем удалить все теги?

Study eases concerns about taking antidepressants during pregnancy and autism risk <a href="https://t.co/Cs0mdeYEBo" rel="nofollow noopener" dir="ltr" data-expanded-url="http://cbsn.ws/2oTosqU" class="twitter-timeline-link" target="_blank" title="http://cbsn.ws/2oTosqU" ><span class="tco-ellipsis"></span><span class="invisible">http://</span><span class="js-display-url">cbsn.ws/2oTosqU</span><span class="invisible"></span><span class="tco-ellipsis"><span class="invisible">&nbsp;</span></span></a><a href="https://t.co/rs5813GdLG" class="twitter-timeline-link u-hidden" data-pre-embedded="true" dir="ltr" >pic.twitter.com/rs5813GdLG</a>

Результат после использования команды должен выглядеть следующим образом:

Study eases concerns about taking antidepressants during pregnancy and autism risk

После использования следующего:

sed -e 's/<[^>]*>//g'

или же

sed 's/<[^>]\+>//g'

Я получил:

Study eases concerns about taking antidepressants during pregnancy and autism risk http://cbsn.ws/2oTosqU&nbsp;pic.twitter.com/rs5813GdLG

Что не совсем то, что я хочу.

1 ответ1

0

Попробуйте это регулярное выражение:

sed -e 's/<.*>//g' <<< $var_containing_string_to_sed

<<< - это строка здесь, она используется для передачи строки в качестве аргумента вместо файла. s/<.*>//g указывает s/(заменить) строку, содержащую символ < за которым следует любой символ, затем заканчивающийся > . Синтаксис Sed выглядит следующим образом: operator/pattern to match/replacement/scope , у нас нет ничего между слешами, которые указывают на замену шаблона на ... ничем (таким образом, удаление).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .