패턴을 무시하는 grep


12

cURL을 사용하여 웹 사이트에서 URL을 추출하고 있습니다.

curl www.somesite.com | grep "<a href=.*title=" > new.txt

내 new.txt 파일은 다음과 같습니다.

<a href="http://website1.com" title="something">
<a href="http://website1.com" information="something" title="something">
<a href="http://website2.com" title="some_other_thing">
<a href="http://website2.com" information="something" title="something">
<a href="http://websitenotneeded.com" title="something NOTNEEDED">

그러나 아래 정보 만 추출해야합니다.

<a href="http://website1.com" title="something">
<a href="http://website2.com" information="something" title="something">

나는 무시하려고 <a href가지고있는 정보를 그들과 그 제목 끝이 NOTNEEDED을 .

grep 구문을 수정하려면 어떻게해야합니까?


여기에 표시되는 출력이 정확합니까? 이를 설명하는 텍스트는이 예제와 함께 의미가 없습니다.
slm

1
찾고있는 님이 curl www.somesite.com | grep "<a href=.*title=" | grep -v NOTNEEDED > new.txt아닌가요?
terdon

@ terdon, 정확히 내가 찾던 것입니다. 게시하면 답변으로 받아 들일 수 있습니다.
Ramesh

라 메쉬, 기본적으로 @slm의 답변입니다. 당신이 그것을 받아 들일 수 있도록 방금 편집했습니다.
terdon

오 예, 파이프가 강력하다는 것을 몰랐습니다. 나는 그것을 대답으로 받아 들였다. 감사!
Ramesh

답변:


17

나는 당신의 예제 + 설명을 완전히 따르지 않지만 원하는 것은 다음과 같습니다.

$ grep -v "<a href=.*title=.*NOTNEEDED" sample.txt 
<a href="http://website1.com" title="something">
<a href="http://website1.com" information="something" title="something">
<a href="http://website2.com" title="some_other_thing">
<a href="http://website2.com" information="something" title="something">

예를 들어,

$ curl www.example.com | grep -v "<a href=.*title=" | grep -v NOTNEEDED > new.txt

<a href 섹션에 수업이 있습니다. 기본적으로 나는 출력에서 ​​그것을 원하지 않습니다.
Ramesh

9

그렙 매뉴얼 페이지 말한다 :

-v, --invert-match
    Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX .) 

여러 반전에 정규식을 사용할 수 있습니다.

grep -v 'red\|green\|blue'

또는

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