2015-03-03 61 views
1

這是使用pdfinfo使用終端找到PDF大小

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:"的東西,但它顯然不是正確的方法。任何人都可以將我指向正確的方向嗎?

回答

4

的grep/sed的工作:

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

使用grep來簡化案文,只是你有興趣,然後使用SED行砍斷了線的開始和結束(爲您顯示的例子)。

在這個例子中,有兩個sed選項(每個都是腳本)。這兩個變化的字符匹配給定模式不了了之,例如,

s/old/new/ 

但這裏new是一個空字符串。

開頭的「^」字符是一個「錨點」,與行的開頭匹配。 「[^:]」不同地使用「^」,匹配除「:」之外的任何字符(和「」表示零或多)。所以給出「頁面大小:」,這匹配整個事情。在你的行上的「:」之後,有一些空格(可能是空格或製表符)。 POSIX字符類「[:space:]」可以匹配,並放在方括號中,如您所見:「[[:space:]]」。最後,「。「在第二個選項匹配任何字符(。),零次或多次(*)。

+0

感謝這個偉大的工作!反正你可以打破這裏發生了什麼?它是如何知道什麼切斷? – bryan 2015-03-03 02:40:15