터미널에서 (`ocrmypdf`) 명령을 실행하고 출력 이름에 입력 이름을 포함시킵니다.

터미널에서 (`ocrmypdf`) 명령을 실행하고 출력 이름에 입력 이름을 포함시킵니다.

PDF 처리를 위한 다른 많은 명령이 포함된 Dolphin 서비스 메뉴 파일에 다음 줄이 있습니다.

Exec=bash -c 'f="%u"; ocrmypdf "$f" "${f%.pdf}_ocr.pdf";'

MY_PDF_ocr.pdf입력 파일의 이름을 유지하는 형식으로 출력 파일을 제공한다는 장점이 있습니다 . 하지만 저는 konsole프로세스를 볼 수 있도록 터미널()에서 명령을 실행하는 것을 선호합니다.

이를 위해 다음 줄을 사용할 수 있습니다.

Exec=konsole --noclose -e ocrmypdf "%u" ocr_en.pdf

그러나 출력은 입력의 이름을 유지하지 않습니다.

같은 줄

Exec=konsole --noclose -e ocrmypdf "%u" "${%u}_ocr.pdf"

아무것도 하지 않았습니다.

ocrmypdf명령이 konsole에서 실행되고 출력에 입력 이름이 포함되도록 어떻게 조정할 수 있습니까 ?

답변1

몇 번의 시도(및 오류) 후에 다음과 같은 간단한 명령은 서비스 메뉴에 ocrmypdf %u %u_ocr.pdf이상한 이름(확장자 포함) 형식의 출력 파일을 제공합니다 .INPUT.pdf_ocr.pdf

Exec=konsole --noclose -e ocrmypdf %u %u_ocr.pdf

그러나 더 깨끗한 솔루션(내가 선택할 수 있는 것에서 영감을 얻었음)여기(스크립트의 올바른 형식에 대해) 그리고여기( 터미널에서 이러한 스크립트 사용) 이 OCR 명령(예: 영어)에 대해 별도의 스크립트를 만드는 것처럼 bash보입니다 .ocr_EN.sh

#!/bin/sh
for f in "$@"
do
ocrmypdf "$f" "${f%.pdf}_ocr_EN.pdf"
done

실행 가능하게 만든 후 다음 명령을 사용하십시오(여기 서비스 메뉴 파일 줄에 포함되어 있음).

konsole --noclose -e bash /PATH/TO/ocr_EN.sh %f

이름이 지정된 출력을 제공합니다 INPUT_ocr_EN.pdf(확장자는 두 번 표시되지 않음).

관련 정보