.txt 파일에서 URL 제거

.txt 파일에서 URL 제거

다음 형식의 많은 텍스트와 URL이 포함된 대용량 텍스트 파일이 있습니다.

https://www.website.com/BLAH-BLAH/XX/123567890?@=@81%@38&magic=1&

URL "1234567890"의 마지막 부분은 실제로 임의의 문자열이며 매번 같은 숫자가 아닙니다.

이 형식의 URL을 제외한 모든 텍스트를 제거하고 싶습니다. 저도 다음글 다 삭제하고 싶어요.../XX/1234567890

명확히 하기 위해 결국에는 다음과 같은 URL이 포함된 파일을 원합니다.

https://www.website.com/BLAH-BLAH/XX/123567890

답변1

URL이 새 줄에 있다고 가정하면 이를 정리해야 합니다.

grep "https"

(이렇게 하면 https가 포함된 모든 줄을 검색하여 반환합니다. 관심 있는 URL이 포함되지 않은 줄에 임의의 텍스트에 https가 포함되어 있는 경우 따옴표로 묶인 검색 문자열을 더 길게 확장할 수 있습니다.)

편집(원하는 내용을 잘못 읽음): 편집 2: 첫 번째 "/XX/" 뒤의 10자리 URL을 제거하려면 awk를 사용할 수 있습니다.

awk -F'/XX/' '{print $1 "/XX/" substr($2,0,10)}'

이는 주어진 입력을 구분 기호(이 경우 "/XX/")로 분할하고 첫 번째 값, 즉 첫 번째 "/XX/" 이전의 모든 항목, 그 다음 /XX/, 10자 길이의 하위 문자열( 첫 번째 문자부터 시작) 및 /XX/ 이후의 내용입니다.

다음과 같이 파이프로 연결할 수 있습니다(URL이 urls.txt라는 텍스트 파일에 있다고 가정).

cat urls.txt | grep "https" | awk -F'?' '{print $1 "/XX/" substr($2,0,10)}'

답변2

grep -Po 'https?://\S+/\w\w/\w{1,10}\b'   bigfile.txt

관련 정보