pdfseparate에 대한 thunar 사용자 정의 작업에서 %d를 탈출합니다.

pdfseparate에 대한 thunar 사용자 정의 작업에서 %d를 탈출합니다.

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"

관련 정보