bash - 无法使用 sed 命令编辑 pdf 文件
问题描述
我有一本 PDF 格式的书,我不能用sed
. 我不能真正使用 LibreOffice 来编辑它,因为它是一个包含大量图像的 300 页文档,而且我的电脑在打开时会崩溃。我需要做的就是只在一个位置更改一两个字符(例如,将“+2”更改为“+3”,其中“+2”在整本书中只出现一次)所以解决方案应该是基本的.
我解压缩它然后尝试在它上面使用 sed ,sed
没有改变任何东西,虽然echo $?
会返回0
.
pdftk file.pdf output uncompressed_file.pdf uncompress
sed -i 's/foo/bar/g' uncompressed_file.pdf
pdftk uncompressed_file.pdf output corrected_file.pdf compress
这段代码与另一个文件一起使用,我怀疑某些 PDF 文件会阻止编辑,我正在寻找绕过它的方法。
解决方案
我使用了一个 shell 命令来执行此操作。
qpdf --stream-data=uncompress $1 uncompressed.pdf
sed -i "s/("$2")/("$3")/g" uncompressed.pdf
qpdf --stream-data=compress uncompressed.pdf $1
因此,如果这是 myShell.sh,则使用命令行,例如,
myShell.sh yourFile.pdf +2 +3
应该这样做。
推荐阅读
- ios - 关闭尚未编辑的视图时崩溃 - SwiftUI
- python - 整数的不同分区,不包括重复组合
- java - 如何使用 java、JSON 获取一个国家的 covid 信息
- java - 将项目导出到 jar 文件后,我的项目无法正常工作
- python - 使用 MOSES 或 PHRASER 在 python 中翻译?
- c# - 如何创建状态图
- asp.net-core - 在 Entity Framework Core 中为多个上下文生成脚本,带有数据库引用
- cross-compiling - Bazel 对来自 cc_library 的 genrule 的依赖没有建立
- angular - localStorage.getItem('user') 为空
- java - 调试 gradle bootRun 有 server=n