하나의 명령으로 모든 PDF 파일을 폴더 내에서 텍스트로 변환하는 방법은 무엇입니까? 같이 하나씩 텍스트 파일로

나는 pdf 파일을 다음과 같이 하나씩 텍스트 파일로 변환 할 수 있음을 알고 있습니다.

$ pdftotext filename.pdf

그러나 별도의 파일 이름을 지정하지 않고 변환하여 모든 파일을 변환하는 단일 명령이 있습니까?

내가보고 여기, 위키 백과에 “와일드 카드 (*), 예를 들어 $의 pdftotext에 대한 * PDF, 여러 개의 파일을 변환, pdftotext 예상하는 때문에 하나의 파일 이름을 사용할 수 없습니다.”고,



답변

다음은 현재 디렉토리의 모든 파일을 변환합니다.

for file in *.pdf; do pdftotext "$file" "$file.txt"; done

답변

ls *.pdf | xargs -n1 pdftotext

xargs매번 작은 변경으로 동일한 명령을 여러 번 실행하는 빠른 솔루션입니다. 이 -n1옵션을 사용하면 한 번에 하나의 pdf 파일 만 pdftotext로 전달됩니다.

편집 : 파일 이름 등의 공백이 걱정되면 다음 대안을 사용할 수 있습니다.

find . -name '*.pdf' -print0 | xargs -0 -n1 pdftotext

답변

bash 스크립트 작성

for f in *.pdf; do
  pdftotext "$f"
done

또는 다음과 같이 한 줄 명령으로 입력하십시오.

for f in *.pdf; do pdftotext "$f"; done

이게 도움이 되길 바란다. 이것을 테스트 할 큰 .pdf 그룹이 없지만이 전략을 사용하여 .flac 파일을 .ogg 파일로 변환합니다.


답변

먼저 SamRyan Thompson 에게 감사 하고 다른 모든 응답자에게도 감사해야합니다. 여기에 내 대답은 Thunar의 사용자 지정 작업에 솔루션을 추가 할 수있는 가능성과 관련된 변형 일뿐입니다.

따라서 모든 터미널 명령으로 폴더 내의 모든 pdf 파일을 텍스트로 변환하는 명령을 Thunar 파일 관리자의 사용자 정의 동작 목록에 넣을 수 있습니다

거기에있는 명령은 find . -name '*.pdf' -print0 | xargs -0 -n1 pdftotext( 라이언 톰슨 에서 온 ) 내가 선호하는 명령이지만 불쾌한 차례입니다 … 아래를 참조하십시오 …

…주의 깊게 사용되는 재미있는 명령입니다. 해고 된 폴더 내의 모든 pdf를 텍스트로 변환하도록 만들어 지므로 홈 폴더에서 실수로 해고 된 경우 원치 않는 것이 있습니다 효과 : 모든 PDF 파일이 텍스트로 변환됩니다!

(저는 이것을 다음과 같이 테스트했습니다. 데스크탑에 “test”라는 폴더를 만들고 /Desktop/test/a/b/c/e/f/g/h/i각각 동일한 pdf를 포함 하는 pdf 파일과 폴더 ( ) 내에 일련의 폴더를 만듭니다. 해당 명령을 실행하면 /Desktop/test모든 pdf 가 “i”폴더)

위험을 피하기 위해이 명령을 조정하는 방법에 대한 의견을 환영합니다.

다른 하나 (와 그 교체 for file in *.pdf; do pdftotext "$file" "$file.txt"; done에서 오는) , 문제는 피할 수있다.

그러나 어떤 경우에는 Ryan의 솔루션이하는 일을 정확하게 원할 수 있습니다!


답변

for file in *.pdf; do pdftotext "$file" "$file.txt"; done

이것은 sample.pdf.txt를 출력 합니다 .

user2357111317이 제안하고 텍스트 레이아웃을 유지하기 위해 -layout 도 포함 하여이 것을 사용하려고했습니다.

for file in *.pdf; do pdftotext -layout "$file"; done