在做Linux作业,遇到一题用sed替换掉文件中的特殊字符,其中HTML标签就是一大堆特殊字符。
先来说说sed的替换使用“s/待替换的字符/将替换成的字符/”。
其后还可以跟g,即“s///g”,表示全局替换,整个文本都会执行替换词。
再者,遇到相同字符串中含有大小字母,忽略大小字母进行替换,则使用i,即“s///i” 。
如果遇到需要执行多个sed命令,可以使用-e,同时执行多个命令。如:sed -e "2d" -e "s/ABC/XYZ/i";
现在再来说说重点,如何替换:
1.只想单纯过滤掉html标签,显示内容:
"s/<[^>]*>//g"
2.识别出html标签(这个要换成与html标签对应的字符):
下面的是一些对应字符替换
s/<title>/.TL /g
s/</title>//g
s/<author>/.AU
/g
s/</author>//g
s/<institution>/.AI
/g
s/</institution>//g
s/<abstraction>/.AB/g
s/</abstraction>/.AE/g
s/<i>/.I /g
s/</i>/
/g
s/<h1>/.NH
/g
s/</h1>//g
s/<p>/.PP/g
s/</p>//g
s/<foot>/.FS/g
s/</foot>/.FE/g
s/<li>/.IP/g
s/</li>//g
s/<quote>/.QP/g
s/</quote>//g
s/<table>/.TS/g
s/</table>/.TE/g
s/<equation>/.EQ/g
s/</equation>/.EN/g
s/<picture>/.PS/g
s/</picture>/.PE/g
s/<pre>/.DS/g
s/</pre>/.DE/g