如果我们有以下内容,我们如何删除所有标签?
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"> </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 pic.twitter.com/rs5813GdLG
这并不是我想要的。
答案1
尝试这个正则表达式:
sed -e 's/<.*>//g' <<< $var_containing_string_to_sed
是<<<
这里的字符串,它用于传递字符串作为参数而不是文件。s/<.*>//g
表示s/
(替换)包含字符<
后跟任意字符然后以 结尾的字符串>
。Sed 语法如下:operator/pattern to match/replacement/scope
,斜杠之间没有任何内容,表示用 ... 替换模式(因此删除)。