2011-11-27 3 views
1

텍스트를 정직하게 자르는 법을 모르겠습니다.웹 페이지에서 텍스트를 가져 와서 자르기위한 쉘 스크립트

내가 지금까지 가지고 :

wget --output-document=- http://www.geupdate.com 2>/dev/null \ 
| grep last \ 

출력 :

<li><b><img src='http://www.geupdate.com/img/arrow-tail.png' align='left'>Time since last update</b>: <br />0 day, 19 hours, 23 min, 36 sec</li><li><b><img src='http://www.geupdate.com/img/ledlightblue.png' align='left'>An Update to occur within:</b> (<a href='http://www.geupdate.com/update-prediction/'><font size='-2'>?</font></a>) <br />0 day, 21 hours, 56 min, 30 sec</li>    </ul> 

내가 실제로에서 다듬을 것은 :

0 day, 19 hours, 23 min, 36 sec 

사람이 어떻게 말해 줄 수있는 경우 뭔가 간단하게 쓰면 뭔가 쓸 수도 있고 쓸 수도 있습니다.

내가 이것을 실행

0 day, 19 hours, 43 min, 16 sec</li><li><b><img src='http://www.geupdate.com/img/ledlightblue.png' align='left'>An Update to occur within:</b> (<a href='http://www.geupdate.com/update-prediction/'><font size='-2'>?</font></a>) <br />0 day, 21 hours, 36 min, 50 sec 

답변

3
wget --output-document=- http://www.geupdate.com 2>/dev/null \ 
| grep last \ 
| grep -o '[[:digit:]]* days*, [[:digit:]]* hours*, [[:digit:]]* min, [[:digit:]]* sec' \ 
| head -1 
+0

이 어떻게 다음 "초"다음에 모든 것을 잘라 것 :

wget --output-document=- http://www.geupdate.com 2>/dev/null \ | grep last \ | grep -o '[[:digit:]]* day.* sec' 

나는이 얻을? – Aaron

+1

@Aaron :'sec '이후 모든 것을 차단합니다. grep에 대한'-o' 플래그는 패턴을 포함하는 전체 라인을 가져 오는 대신 패턴과 일치하는 부분 문자열 만 생성하도록 지시합니다. 니모닉은 행동의 절반 만 설명한다 :'echo 1234 | grep -o '[1234]'는'1','2','3','' 4 '를 사용하십시오. – ruakh

+0

다시 시도해 주셔서 감사합니다. 3 – Aaron