![查找单词列表并替换为一个单词](https://linux22.com/image/213783/%E6%9F%A5%E6%89%BE%E5%8D%95%E8%AF%8D%E5%88%97%E8%A1%A8%E5%B9%B6%E6%9B%BF%E6%8D%A2%E4%B8%BA%E4%B8%80%E4%B8%AA%E5%8D%95%E8%AF%8D.png)
我有一些.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