使用 sed/grep/awk 删除 html 标签

使用 sed/grep/awk 删除 html 标签

如果我们有以下内容,我们如何删除所有标签?

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

尝试这个正则表达式:

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

<<<这里的字符串,它用于传递字符串作为参数而不是文件。s/<.*>//g表示s/(替换)包含字符<后跟任意字符然后以 结尾的字符串>。Sed 语法如下:operator/pattern to match/replacement/scope,斜杠之间没有任何内容,表示用 ... 替换模式(因此删除)。

相关内容