grep을 사용하여 도메인 이름을 일치시키는 방법은 무엇입니까?


4

다음과 같은 URL 목록이 있습니다.

hxxp://url.com/subpage.html
hxxp://www.url2.com/index.php
hxxp://subdomain.url3.com/somepage.php
...

grep을 사용하여 도메인 이름 만 일치 시키려면 어떻게해야합니까?

모든 URL은 도메인 뒤에 /가 있습니다. 그리고 많은 목록이 있습니다. 얼마나 많은지, 목록이 꽤 큽니다.

답변:


5

욕심없는 정규 표현식 grep을 사용하려면 -P옵션 을 사용해야하며 옵션 -o은 일치하는 부분 만 출력합니다. 일치하는 부분이 출력에 포함되지 않도록 둘러보기를 사용해야합니다.

grep -Po '.*?//\K.*?(?=/)'

예:

$ echo 'hxxp://subdomain.url3.com/somepage.php' | grep -Po '.*?//\K.*?(?=/)'
subdomain.url3.com

0

정규식 기술을 테스트하기에 좋은 곳이 여기에 있습니다 . 표현은 다음과 같아야합니다

.*?//(.*)/

모든 결과를 반복해야합니다. 내가 준 페이지 에서이 표현과 웹 주소를 입력하면 일치하는 것을 보여줍니다. 또한 제한된 시간 동안 만 캡처 된 변수를 갖게됩니다.


그것은 작동하지 않습니다http://url.com/directory/page.html
Karl Bielefeldt

0

도메인 뒤에 하나의 TLD 만있는 경우 작동해야합니다 (하위 도메인을 제외한다고 가정합니다).

[^\./]*\.[^\./]*/

그래도 슬래시가 있지만을 통해 파이프 할 수 있습니다 sed.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.