使用终端查找 PDF 大小

Using terminal to find PDF size

这是使用pdfinfo

的正常输出
Creator:        Pages
Producer:       Mac OS X 10.10.1 Quartz PDFContext
CreationDate:   Tue Mar  3 01:26:34 2015
ModDate:        Tue Mar  3 01:26:34 2015
Tagged:         no
Form:           none
Pages:          5
Encrypted:      no
Page size:      612 x 792 pts (letter) (rotated 0 degrees)
File size:      242463 bytes
Optimized:      no
PDF version:    1.3

所以我知道我可以做这样的事情来获取页面数量:

pdfinfo document.pdf | grep Pages: | awk '{print }'

我正在尝试获取页面大小以放置类似 612 x 792 的内容。

目前我正在尝试 grep "Page size:" 之类的方法,但这显然不是正确的方法。谁能指出我正确的方向?

grep/sed 工作:

pdfinfo document.pdf | \
    grep "Page size:" | \
    sed -e 's/^[^:]*:[[:space:]]*//' -e 's/[[:space:]]pts.*//'

使用 grep 将文本简化为您感兴趣的行,然后使用 sed 删除行的开头和结尾(对于您展示的示例)。

在此示例中,有两个 sed 选项(每个都是一个脚本)。两者都将匹配给定模式的字符更改为空,例如,

s/old/new/

但这里 new 是一个空字符串。

开头的“^”字符是一个"anchor",匹配行的开头。 "[^:]" 以不同方式使用 "^",匹配除 ":" 之外的任何字符(而 "" 表示零个或多个)。所以给定 "Page size:",这与整个事情相匹配。在你这一行的“:”之后,有一些白色的space(可能是space或者制表符)。 POSIX 字符 class “[:space:] 匹配其中一个,并放在括号内,如您所见:“[[:space:]]”。最后,第二个选项中的“.”匹配任意字符 (.) 零次或多次 (*).