処理するPDFファイルの順序を逆に置き換えます。

処理する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注文する.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.pdffile1.pdf.

そして:

$ print -r ./*.pdf(nOn)
./file11.pdf ./file10.pdf ./file3.pdf ./file2.pdf ./file1.pdf

後者は、数値比較を実行する一連の10進数withによってfile10.pdf行われます(これはGNUまたはGNUが実行するのと似ています)。file3.pdfnls -vsort -V

おすすめ記事