コンテキスト: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
注文する.pdfファイルをリンクするには、.pdfファイルを逆順にリンクする必要があります。処理するファイルの順序は、次のように返されます。
ls -r.pdf
.pdfファイル名のスペースを処理するには: xargsの研究以下が必要であることを示します。
ls -r *.pdf | xargs -E '\n'
lsの出力をコマンド内のコマンドにパイプする事故プロセスは何ですかqpdf
?
ベストアンサー1
その内容はzsh
次のとおりです。
qpdf --empty --pages ./*.pdf(On) -- output.pdf
On
一つはどこにありますか?グローバル予選拡張によって逆順にグローブをソートします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
後者は、数値比較を実行する一連の10進数withによってfile10.pdf
行われます(これはGNUまたはGNUが実行するのと似ています)。file3.pdf
n
ls -v
sort -V