URL 목록에서 매개변수 추출

URL 목록에서 매개변수 추출

질문:

URL 목록에서 모든 매개변수 추출

예를 들어 링크는 다음과 같습니다.

https://www.google.com/search?q=grep+urls+from+a+file&rlz=1C5CHFA_enIL1008IL1008&oq=grep+urls+from+a+file

내가 시도한 것:

?시작 하고 끝나는 텍스트 , =시작 &하고 끝나는 텍스트 또는 빈 문자열을 Grep합니다.&

원하는 결과:

q

rlz

oq

답변1

--perl-regexp다음 옵션과 함께 grep을 사용하여 이 작업을 수행 할 수 있습니다 .

grep -Po '(?<=(\?|&))[^&]*(?==)'
  • (?<=(\?|&))?문자열 과 함께 또는 &이전에
  • [^&]*하지만 어떤 캐릭터라도&
  • (?==)=뒤에 끈이 있어요

답변2

귀하의 URL이 다음 파일에 있다고 가정합니다 file.

sed -e 's/[^?]*[?]//' -e 's/=[^&]*//g' -e 'y/&/\n/' file

물음표 자체를 포함하여 첫 번째 물음표 앞의 URL 부분을 제거하는 것부터 시작하세요.

첫 번째 대체 후 예제 URL에 남아 있는 내용은 다음과 같습니다.

q=grep+urls+from+a+file&rlz=1C5CHFA_enIL1008IL1008&oq=grep+urls+from+a+file

두 번째 대체는 모든 매개변수 값을 제거하고 제한 &문자를 유지합니다. a로 시작 =하고 &문자가 아닌 것으로 구성된 모든 문자열을 제거합니다 . 귀하의 예를 바탕으로 다음이 생성됩니다.

q&rlz&oq

최종 표현식은 각 문자를 &리터럴 개행 문자로 바꿉니다.

q
rlz
oq

관련 정보