2013-10-30 4 views
2

저는 curl을 사용하여 사이트에서 HTML을 가져오고 있습니다. 'standards.xml? revision ='과 '& amp'사이의 특정 문자열이 필요합니다. 이 일을하기 위해 sed를 사용하고 있지만 정규 표현식을 얻지 못하고 도움이 필요합니다.sed를 사용하여 문자열을 가져옵니다.

curl website.com | sed -r 's|.*standards\.xml\?revision=([0-9]+).*|\1|' 

출력은 전체 HTML입니다. 어떤 도움을 주시면 감사하겠습니다.

+1

grep ... –

+0

grep은 어떻게 사용해야합니까? – cakes88

답변

5

거의 다 왔어. 문자열을 나오지 이전부터

curl website.com | sed -n -r 's|.*standards\.xml\?revision=([0-9]+).*|\1|p' 
+0

아, 완벽 해요! 감사합니다. – cakes88

+1

@Konnor Welcome! 이 사이트를 처음 접해 본 것 같습니다. 어떤 ans가 당신을 위해 일하고 있다면, the ans 외에 hollow green tick mark를 클릭하여 ans를 받아들이는 것을 고려하십시오. 추신 나는 당신이 당신의 3 개의 대답 중 하나를 받아들이지 않았 음을 알았습니다. – jkshah

+0

아 나는 그것도 모르는, 팁 주셔서 감사합니다 :) – cakes88

2

당신은 grep -oP (PCRE 옵션)를 사용할 수 있습니다 :

grep -oP 'standards\.xml\?revision=\K[0-9]+' 

\K은 따라서 만 후반 [0-9]+가 반환되는 일치하는 텍스트를 재설정합니다.

1
curl website.com | sed -n '/xml/ {s|.*standards\.xml\?revision=([^&]+).*|\1|p;q;}' 

을 대체 인쇄 타의 추종을 불허하는 데이터를 인쇄하고 s|||p 수정을 추가하지 sed-n 옵션을 사용해보십시오 [0-9] + 숫자는 어쩌면 [^ & 발생할 경우에만입니다 ] +가 더 적절합니다. '및 |을 사용하는 것이 좋습니다. 문제가 발생하지 않도록하려면 다음을 선택하십시오 :-)

관련 문제