모든 파일을 순서대로 처리하는 다른 스크립트를 만드는 스크립트는 무엇입니까?

모든 파일을 순서대로 처리하는 다른 스크립트를 만드는 스크립트는 무엇입니까?

ocr을 사용하여 pdf 파일을 txt 형식으로 변환하는 훌륭하게 작동하는 스크립트를 찾았습니다.

하지만 매번 하나의 PDF 파일만 변환합니다. 대량으로 변환해야 합니다.

저는 대본 작성에 대한 지식이 없습니다. 스크립트는 아래에 있습니다.

어떻게 대량 변환할 수 있나요?

#!/bin/bash

## script to:
##   *  split a PDF up by pages
##   *  convert them to an image format
##   *  read the text from each page
##   *  concatenate the pages


## pass name of PDF file to script
INFILE=$1

## split PDF file into pages, resulting files will be
## numbered: pg_0001.pdf  pg_0002.pdf  pg_0003.pdf
pdftk $INFILE burst

for i in pg*.pdf ; do

    ## convert it to a PNG image file
    convert -density 200 -quality 100 $i ${i%.pdf}.png

    ## read text from each page
    tesseract ${i%.pdf}.png ${i%.pdf}.txt

done

## concatenate the pages into a single text file
cat pg*.txt > ${INFILE%.pdf}.txt

exit

참고: 비슷한 질문을 읽었지만 이해할 수 없었습니다.

답변1

스크립트를 수정할 수 있습니다.

# instead of INFILE=$1
for INFILE
do
#...

    for i in pg*.pdf ; do
        #...    
    done

    ## concatenate the pages into a single text file
    cat pg*.txt > ${INFILE%.pdf}.txt
done

그런 다음 스크립트를 다음과 같이 호출하십시오.

some-script.sh 1.pdf 2.pdf #...

루프 bash for는 반복할 항목이 지정되지 않은 경우 모든 명령줄 인수를 반복합니다. 따라서,

for INFILE

다음과 같습니다:

for INFILE in "$@"

답변2

귀하의 질문에서 제가 이해한 바에 따르면, 귀하가 기대하는 바는 다음과 같습니다.

for each in *.pdf
do
  your_conv_script.sh $each
done

your_conv_script.sh위에서 표시한 스크립트는 어디에 있습니까?

또한 임시로 생성된 파일을 정리해야 합니다.

관련 정보