2017-05-20 8 views

답변

3

내가 제안 '다 예기치 않은 토큰`가까이 :

find . -name "*.pdf" | while IFS= read -r file; do if [ ! -e "$file.txt" ]; then pdftotext "$file"; fi; done 

참조 : help whilehelp if

0

데이터를 셸로 파이프하지 마십시오. 의 쉘 루프를find 내에 실행하십시오.

script=' 
    for f in "[email protected]"; do 
    if ! [ -e "$f" ]; then 
     pdftotext "$f" 
    fi 
    done 
' 
find . -name '*.pdf' -exec sh -c "$script" _ {} + 

어떤 유효한 파일 이름, 줄 바꿈을 포함하는 경우에도 하나 일 것입니다. find은 호출 될 때마다 가능한 한 많은 파일을 스크립트에 전달하고 모든 파일을 처리하는 데 필요한만큼 스크립트를 호출합니다.