查找单词列表并替换为一个单词

查找单词列表并替换为一个单词

我有一些.epub书籍文件,我想编辑脏话供我年幼的孩子阅读。我读过sed是适合这项工作的工具(我也对不同的解决方案持开放态度),但对此还很陌生。

原文示例

ant bat cat
dog eagle fish

修改后的文本(sed后)

ant XXX cat
XXX eagle XXX

我在 Mac 上,并且已经得到了这个工作:

LC_ALL=C sed -E 's/bat|dog|fish/XXX/ig' temp1.txt > temp2.txt

ant XXX cat
XXX eagle XXX

但我无法让它与 .epub 文件格式一起使用
LC_ALL=C sed -E 's/bat|dog|fish/XXX/ig' file1.epub > file2.epub

这是一个关联到一个示例.epub文件。

答案1

像这样:(你需要待安装):

pandoc -f epub -t plain -o test1.txt test1.epub
sed -i'' -E 's/bat|dog|fish/XXX/ig' test1.txt
pandoc -f plain -t epub -o test1.epub test1.txt

另一种不完整的方法:

unzip test1.epub
cd OPS
lynx -dump ./html/chapter*.html  | less
xmlstarlet edit # on the proper HTML files
cd -
zip -r test1.epub OPS

相关内容