PDFを右クリックし、「PDF分割」を選択して別のページに分割できるthunarカスタムタスクを作成したいと思います。これを行うコマンドは次のとおりです。
$ pdfseparate mypdf.pdf mypdf-%d.pdf
などとmypdf-1.pdf
呼ばれる各ページに対して新しいPDFを生成し、マニュアルページに従ってページ番号を使用してpdfseparateコマンドに置き換えます。mypdf-2.pdf
%d
SYNOPSIS pdfseparate [options] PDF-file PDF-page-pattern
PDF-page-pattern should contain %d (or any variant respecting printf format), since %d is replaced by the page number.
Thunar カスタムアクションファイルが配置されているディレクトリを使用して、any%n
を選択したファイルに補間します。したがって、上記のコマンドをに置き換え%d
てコピーしようとすると、次のようになります。mypdf.pdf
%n
pdfseparate "%n" "$(basename "%n" .pdf)-%d.pdf"
ただし、thunarは%d
ディレクトリをファイルに置き換えます。そのまま配信される%d
ようにどのように脱出できますかpdfseparate
?
pdfseparate
他の変数を使用するオプションはないようですが、%d
「printf形式を尊重するすべてのバリアント」を許可すると述べています。これが何を意味するのかわかりません...試してみましたが、%s
成功しませんでした。
答え1
printfなどのツールでは通常、%%
for literalを使用できます%
。たとえば、printf
標準Cライブラリ(参考文献を参照)man 3 printf
のマニュアルページには次のものが表示されます。
% A '%' is written. No argument is converted. The complete conversion specification is '%%'.
したがって、エスケープして%
リテラルとして処理するには、thunarに実行したいコマンドを%
使用するだけです。%%
pdfseparate %n "$(basename %n .pdf)-%%d.pdf"