
URL에서 모든 .pdf 파일 목록을 찾는 스크립트를 사용하고 있습니다. 하지만 Lynx는 파일 이름에 공백이 있는 것 같습니다. 스크립트는 다음과 같습니다.
lynx --dump http://www.somesite/here/ | awk '/http/{print $2} | grep pdf > ~/Desktop/links.txt
이는 .pdf 파일 이름에 공백이 나타날 때까지 예상대로 작동합니다. Lynx는 공백으로 인해 파일 이름이 잘리는 것처럼 보입니다. 이를 방지할 수 있는 방법이 있나요?
답변1
awk(기본적으로)는 공백을 필드 구분 기호로 사용하고 lynx는 덤프된 URL의 공백을 공백으로 렌더링합니다. 버그 보고서에서 제안한 대로 이 문제를 해결하세요.
lynx -listonly -dump http://www.somesite/here/ | lynx -listonly -dump http://www.somesite/here/ | awk '/\.pdf$/{ sub("^[ ]*[0-9]+.[ ]*","",$0);print}' > ~/Desktop/links.txt
콘텐츠가 UTF-8로 인코딩되면 lynx탈출하다텍스트(URL 인코딩 실행 취소, 예:%20
), 이 경우 공백을 표시합니다(이름의 공백 수에 따라 두 개 이상의 필드를 제공합니다).
데비안은 탈출을 마쳤습니다#398274, 2013(즉, Ubuntu 18.04에는 이미 이 기능이 있습니다).
다음에 추가-listonly
옵션은 다음만 확인하여 잘못된 일치 수를 줄입니다.목록URL.
여러 파일 형식을 찾으려면 다음과 같이 정규식에 접미사를 대안으로 나열할 수 있습니다.
awk '/\.(pdf|odt|doc|docx)$/{ sub("^[ ]*[0-9]+.[ ]*","",$0);print}' > ~/Desktop/ 링크.txt