2017-04-20 3 views
0

grep 어떻게 든 파일의 모든 가격과 출력을 나열 할 수 있습니까? 가격은 "$"로 시작하며 숫자, ","및 "."을 포함 할 수 있습니다.Grep 모든 파일 가격

나는 최선의 해결책을 this question에서 시도했지만 모든 파일 또는 가격이 포함 된 전체 문자열을 출력합니다.

내가 사용하는 패턴은 간단하다 : \$

내가 grep을 할 웹 페이지 : 페이지 소스의 http://www.ned.org/

예 :

<p><strong>Better Understanding Public Attitudes and Opinions</strong> 
</p> 
<p>Democratic Ideas and Values</p> 
<p>$43,270</p> 
<p>To monitor and better understand public views on key social, political, and economic developments. Citizens’ opinions will be tracked, documented, and studied ahead of and after the country’s September 2016 parliamentary elections. The results and accompanying analysis will be disseminated through print and electronic publications, a website, and independent media.</p> 
<p><strong> </strong></p> 

나는이에서 출력하고자 43,270 같은 HTML 조각 또는 43270 수 있습니다. 그냥 구문 분석기를 작성하는 게으름 ::

+1

적어도 일부 입력 예를 – RomanPerekhrest

+1

@RomanPerekhrest 있는지를 보여줄 수 있습니다. 전에 그것을하지 않은 것에 대해 유감스럽게 생각합니다. – kelin

답변

2

이 같은 것 의 내 테스트를 위해 잘 작동합니다 :

$ echo "$prices" 
tomato $30.10 
potato $19.1 
apples=$2,222.1 
oranges:$1 
peach="$22.1",discount 10%,final price=$20 

$ egrep -o '\$[0-9]+([.,][0-9]+)*' <<<"$prices" 
$30.10 
$19.1 
$2,222.1 
$1 
$22.1 
$20 

실제 테스트를 웹 페이지로 :

$ links -dump "http://www.ned.org/region/central-and-eastern-europe/belarus-2016/" |egrep -o '\$[0-9]+([.,][0-9]+)*' 
$43,270 
$25,845 
$55,582 
$14,940 
$44,100 
$35,610 
$54,470 
$60,200 
$33,150 
$15,720 
$35,160 
$45,500 
$72,220 
$26,330 
$53,020 
$27,710 
$22,570 
$40,145 
#more prices following bellow