

书籍情况:在网上找的被人修改过的 epub 书籍,这本书的样式文件被删,所有html文件里无导入样式的代码,样式被嵌入在标签里,html文件很多;
解决思路:添加样式文件或是直接插代码到html文件里,由于这本书的采用了最糟糕的样式形式,纠正太费劲,只好选择插入代码到html文件。又因文件众多,所以手动插入并不可取,效率低下,遂选择使用 sed 命令结合正则和通配符来完成;
方法:见图;
macOS命令:sed -i'' -e 's!\(<body>\)!\1<style type="text/css">p{text-indent: 2em;}</style>\n!' text[0-9]*.html
Linux命令:sed -i 's!\(<body>\)!\1<style type="text/css">p{text-indent: 2em;}</style>\n!' text[0-9]*.html
命令解读:
's!\(<body>\)!\1<style type="text/css">p{text-indent: 2em;}</style>\n!':使用正则添加样式,不用改,不解释;
text[0-9]*.html:匹配以text开头,以.html结尾,中间夹着任意长度的数字的文本,按需更改。图省事可直接使用text*.html,能适用于很多情况;
通配符解释:
[0-9]:匹配一个0到9的数字;
[A-Za-z]:匹配不区分大小写的字母组合;
*:匹配任意长度的字符;
[A-Za-z0-9]*:匹配任意长度的字母加数字的组合;
关于zip、epub格式:epub书籍采用zip格式压缩,所以像通常那般将文件压缩为zip文件后更名即可。