필자의 의견에서 말했듯이 일반적으로 정규 표현식으로 HTML을 구문 분석하는 것은 좋지 않지만 구문 분석하는 HTML이 제대로 작동하면 때로는 HTML을 피할 수 있습니다.
요소 href
속성 에있는 URL 만 가져 오려면 <a>
여러 단계로 수행하는 것이 가장 쉽다는 것을 알게되었습니다. 의견에서 전체 URL이 아닌 최상위 도메인 만 원하는 것 같습니다. 이 경우 다음과 같은 것을 사용할 수 있습니다.
grep -Eoi '<a [^>]+>' source.html |
grep -Eo 'href="[^\"]+"' |
grep -Eo '(http|https)://[^/"]+'
source.html
구문 분석 할 HTML 코드가 포함 된 파일은 어디에 있습니까 ?
이 코드는 각 줄 href
에있는 <a>
요소 의 속성으로 발생하는 모든 최상위 URL을 인쇄합니다 . -i
첫 번째 grep
명령 의 옵션 은 요소 <a>
와 <A>
요소 모두에서 작동하도록하는 것입니다 . 대문자 속성 인 OTOH 를 캡처 -i
하기 위해 2nd grep
에 줄 수도 있다고 생각 HREF
합니다. OTOH는 그런 깨진 HTML을 무시하고 싶습니다. :)
내용을 처리하려면 http://google.com/
wget -qO- http://google.com/ |
grep -Eoi '<a [^>]+>' |
grep -Eo 'href="[^\"]+"' |
grep -Eo '(http|https)://[^/"]+'
산출
http://www.google.com.au
http://maps.google.com.au
https://play.google.com
http://www.youtube.com
http://news.google.com.au
https://mail.google.com
https://drive.google.com
http://www.google.com.au
http://www.google.com.au
https://accounts.google.com
http://www.google.com.au
https://www.google.com
https://plus.google.com
http://www.google.com.au
호주 Google 페이지로 리디렉션되는 결과는 다른 예제와 약간 다릅니다.