Grep显示文件名和找到的二进制文件行(PDF)

时间:2018-01-17 07:49:38

标签: linux bash pdf grep binary

我有一个包含大量PDF文件的文件夹。我需要获取匹配内容文件的文件名以及其中的特定文本 - 旋转270 ,它定义页面旋转。 Grep的参数anH或/ dev / null方法似乎不起作用,pdftotext或pdfgrep也无法提供帮助,因为它不是我需要的页面上任何可见或可搜索的文本。 我可以得到"二进制文件aaa.pdf匹配"或像这样的行(这不是页面上可见的文字!):

<</Filter/FlateDecode/Length 61>>stream4 595.19995]/MediaBox[0 0 841.92004 595.19995]/Parent 5 0 R/Resources<</ProcSet[/PDF/Text/ImageB/ImageC/ImageI]/XObject<</img3 11 0 R>>>>/Rotate 270/Type/Page>>

怀疑有一种方法可以在grep获取它们之前松开不可打印的字节,或者在grep部分之前拆分文件名并在grep找到该行之后汇编回来,或者sed有一个简单的方法来实现这个?

如何同时获取文件名和找到的行,就像常规文本文件中的grep一样?

1 个答案:

答案 0 :(得分:0)

我没有包含该字符串的pdf文件,但您可以尝试

identify -verbose somefile.pdf | grep 'Rotate 270'

识别是ImageMagick包的一部分。

您还可以尝试使用强力方法: - )

strings somefile.pdf | grep 'Rotatae 270'