Linux 터미널에서 PDF를 이름 순서로 병합하는 방법은 무엇입니까? [복사]

Linux 터미널에서 PDF를 이름 순서로 병합하는 방법은 무엇입니까? [복사]

인터넷에서 공유하고 싶지 않은 PDF가 86개 있는데 온라인 도구를 사용하여 병합합니다. 저는 PopOS Linux 배포판을 사용하고 있으며 터미널을 사용하여 병합하고 싶습니다.

PDF 이름은 다음과 같습니다 1.SubjectA. 2. SubjectB (Number.로 시작하므로 잘 정렬됩니다.) 제가 찾은 것은 다음과 같지만 순서대로 병합된 항목은 없습니다.

qpdf --empty --pages *.pdf -- out.pdf

파일 이름 예:

1. Why to learn System and Network.pdf
2. Network, Hardwares, LAN-WAN.pdf
3. Protocols-Ports, OSI-TCP IP.pdf
4. ARP, ICMP, RFC, IANA.pdf
...

패턴은 숫자 + .(점) + 공백 + 이름입니다.

답변1

디렉터리의 모든 파일에 대해 파일 이름에서 공백과 쉼표를 제거한 다음 정렬하고 병합할 수 있습니다.

 find . -name "*" -type f | rename 's/ /_/g'
 find . -name "*" -type f | rename 's/,/_/g'
 ls | sort -n | pdfunite *.pdf merged.pdf

답변2

원하는 순서와 일치하도록 정렬 명령을 조정해 보겠습니다.

qdf --empty --pages `ls *.pdf |sort -n` -- out.pdf

파일 이름에 공백이 포함되어 있으면 이 방법이 작동하지 않습니다. 이 경우 다음을 권장합니다.

find . -name "*.pdf" -type f -print0  |sort -V -z |xargs -0 qpdf --empty --pages {} -- out.pdf

이것이 귀하의 요구 사항을 충족하지 못하는 경우 발견한 문제를 설명해 주십시오.

관련 정보