【发布时间】:2017-09-07 16:59:50
【问题描述】:
我在 Windows 上运行 GNU sed 4.2.1 版。我有大量的 PDF 文件,在最后一条记录中有 %%EOF + 换行符 + 很多 NUL 字符。
请参阅下面的 hexdump。
0000b890: 25 25 45 4F 46 0D 0A 00 - 00 00 00 00 00 00 00 00 |%%EOF
|
0000b8a0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 |
|
我只需要将最后一条记录更改为%%EOF。表达式 ^%%EOF\x0d\x0a\x0{10,30000} 匹配 Notepad++ 中的字符,但它似乎在 sed 中不起作用。有人能帮忙吗?非常感谢。
【问题讨论】:
-
sed 面向行操作,因此您无法轻松匹配多行字符串。您的模式包含 \x0a 即换行符。我认为 sed 不是该任务的最佳选择,但如果使用专家级可能是可能的。 %%EOF 后面的换行符和空字节有什么问题?
-
Adobe Reader XI 无法打开这些文件。