![Linux 터미널에서 PDF를 이름 순서로 병합하는 방법은 무엇입니까? [복사]](https://linux55.com/image/214198/Linux%20%ED%84%B0%EB%AF%B8%EB%84%90%EC%97%90%EC%84%9C%20PDF%EB%A5%BC%20%EC%9D%B4%EB%A6%84%20%EC%88%9C%EC%84%9C%EB%A1%9C%20%EB%B3%91%ED%95%A9%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
인터넷에서 공유하고 싶지 않은 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
이것이 귀하의 요구 사항을 충족하지 못하는 경우 발견한 문제를 설명해 주십시오.