使用终端查找PDF大小

时间:2015-03-03 02:23:47

标签: terminal grep

这是使用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 $2}'

我正在尝试将页面大小设置为612 x 792

目前我正在尝试像grep "Page size:"这样的事情,但显然这不是正确的方法。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:4)

grep / sed work:

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

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

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

s/old/new/

但此处new是一个空字符串。

开头的“^”字符是一个“锚点”,与行的开头相匹配。 “[^:]”使用“^”不同,匹配除“:”之外的任何字符(并且“”表示零或更多)。所以给定“页面大小:”,这与整个事情相匹配。在您的行上的“:”之后,有一些空格(可能是空格或制表符)。 POSIX字符类“[:space:]匹配,并且如下所示放在括号内:”[[:space:]]“。最后,第二个选项中的”。“匹配任何字符( 。)零次或多次(*)。