Xargs
反轉要處理的pdf文件的順序
上下文:Catalina = zsh(首選)或 16.04 Ubuntu = bash
一個
qpdf
例子表明:# To merge (concatenate) all the pages of a list of PDF files and save the result as a new PDF: qpdf --empty --pages <file1.pdf> <file2.pdf> <file3.pdf> -- <output.pdf>
將連接特定目錄中的一組 .pdf 文件(文件名中帶有空格):
# Concatenate Drafts file to ../concatDrafts.pdf (76 pdf files) # https://stackoverflow.com/a/53754681/4953146 qpdf --empty --pages *.pdf -- out.pdf
儘管
qpdf
command是連接 .pdf 文件,但要連接 .pdf 文件的相反順序。要處理的文件的順序由以下方式返回:ls -r.pdf
要處理 .pdf 文件名中的空格: xargs 研究表明需要:
ls -r *.pdf | xargs -E '\n'
將 ls 的輸出通過管道傳輸到命令中的思考過程是什麼
qpdf
?
在
zsh
中,它只是:qpdf --empty --pages ./*.pdf(On) -- output.pdf
在哪裡
On
是glob限定符,用於按ame.o``O``n
您還可以
n
將該按名稱排序的 glob 限定符添加為數字:qpdf --empty --pages ./*.pdf(nOn) -- output.pdf
相比:
$ print -r ./*.pdf(On) ./file3.pdf ./file2.pdf ./file1.pdf ./file11.pdf ./file10.pdf $ (LC_ALL=C; print -r ./*.pdf(On)) ./file3.pdf ./file2.pdf ./file11.pdf ./file10.pdf ./file1.pdf
(按詞彙順序,在比較字元串時在第一個近似值中忽略標點符號(此處)的語言環境中,
file10.pdf
出現在 之前file2.pdf
,甚至在之前)。file1.pdf``.
和:
$ print -r ./*.pdf(nOn) ./file11.pdf ./file10.pdf ./file3.pdf ./file2.pdf ./file1.pdf
file10.pdf
之後是file3.pdf
因為 with ,十進制數字序列以數字方式進行比較(這類似於 GNU或 GNUn
所做的)。ls -v``sort -V