Desejo criar uma ação personalizada thunar que me permita clicar com o botão direito do mouse em um PDF e selecionar "dividir PDF" para dividi-lo em páginas individuais. O comando para fazer isso é:
$ pdfseparate mypdf.pdf mypdf-%d.pdf
Que criará um novo PDF para cada página, chamado mypdf-1.pdf
, mypdf-2.pdf
, etc. %d
é substituído pelo comando pdfseparate com um número de página conforme a página de manual:
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.
As ações personalizadas do Thunar interpolam any %n
como o arquivo selecionado any %d
com o diretório em que o arquivo está. Portanto, se eu tentar replicar o comando acima, substituindo mypdf.pdf
por %n
, ele ficará assim:
pdfseparate "%n" "$(basename "%n" .pdf)-%d.pdf"
No entanto, o thunar substituirá o %d
pelo diretório do arquivo. Como posso escapar %d
para que seja repassado pdfseparate
textualmente?
pdfseparate
não parece ter a opção de usar uma variável diferente de %d
, mas diz que aceita "qualquer variante respeitando o formato printf". Não tenho certeza do que isso significa... tentei %s
e não funcionou.
Em ferramentas do tipo printf, muitas vezes você pode usar
%%
para um literal%
. Por exemplo, na página do manual encontradaprintf
na biblioteca C padrão (consulte Recursosman 3 printf
), você verá:Portanto, para escapar de the
%
e tratá-lo como um literal%
, basta usar%%
. No seu caso, isso significa que o comando que você deseja dar ao thunar é: