대용량 파일에서 URL 추출

대용량 파일에서 URL 추출

여기에서 많은 답변을 보았지만 (주로) HTML 파일에 관한 것입니다. 제 경우에는 HTML 파일이 없고 추출하려는 임의의 데이터와 URL이 포함된 2GB 파일만 있지만 URL은 때로는 출력에 표시하고 싶지 않은 임의의 데이터/텍스트가 혼합되어 있습니다.

예는 다음과 같습니다.

https://example.com/";}i:41067;a:10:{s:3

답변1

~에 따르면https://stackoverflow.com/a/7109208/1745001URL의 유효한 문자는 다음과 같습니다.

AZ, az, 0-9, -, ., _, ~, :, /, ?, #, [, ], @, !, $, &, ', (, ), *, +, ,, ;, % 및 =

따라서 이것이 사실이라고 가정하면 다음을 시도해 볼 수 있습니다.

grep -o -E "https?://[][[:alnum:]._~:/?#@!$&'()*+,;%=-]+" file

이러한 문자 중 일부는 특정 컨텍스트에만 존재할 수 있기 때문에 여전히 100% 정확하지 않을 수 있지만 아마도 간단한 grep/regexp를 사용하여 수행할 수 있는 최선일 것입니다.

grep이 이를 지원하는 경우 약간의 추가 제약을 위해 \<t 앞에 단어 경계를 추가하십시오(예: GNU grep에서) http.

답변2

읽고 man grep다음과 같은 일을 해보세요

grep -o -E 'https?://[^"]+' the_file

관련 정보