2012-05-14 2 views
1

쉘 스크립트에서 다음 데이터의 가격을 제거하려면 어떻게해야합니까? 라벨을 인쇄하고 가격을 표시하고 싶지 않습니다.쉘 스크립트에서 부분 문자열 제거

입력 :

Order: 12 
Name: Raj K 
ABC Inc 
123 Main St 
Edison NJ 

1 Printer - $50.09 
Router - $30.00 
2 AirPrint - $56.10 

출력

Order: 12 
Name: Raj K 
ABC Inc 
123 Main St 
Edison NJ 

1 Printer 
Router 
2 AirPrint 

어떤 아이디어?

+1

당신은 어떤 도구를 가지고 있습니까 (sed/awk/perl/bash/...), 항상 가격이 정확히 같고 지금까지 무엇을 시도 했습니까? – Mat

+0

나는 sed에서 약간의 패턴 일치를 사용했지만 행운은 없었다. 쉘은 bash입니다. 나는 쉘 스크립트에서도 perl을 사용할 수 있다고 생각한다. 쉬운 방법이 있다면 가능하다. –

+0

질문에 시도한 것을 포함하십시오. 이것은 사람들이 당신이 잘못한 곳이나 당신이 그것을 더 잘 할 수있는 방법을 당신에게 알려줄 것입니다. 그렇게하면 더 많이 배울 수 있습니다. – Mat

답변

1

사용은 나오지 :

sed '/ *- *\$[0-9]\+\.[0-9]\{2\}/s///' file 

이 아래 글렌의 코멘트에 대한 응답으로 업데이트되었습니다.

+0

감사합니다. Tim. 나는 어떤 패턴을 놓치고 있었다. 그것은 대단한 일을합니다 .. –

+0

당신은 sed가 빈 regex를 사용하여 이전 문장을 다시 사용할 수 있습니다 :'sed '/ \ + - \ + \ $ [[: digit :]] \ + \. [[ digit :]] \ {2 \}/s /// '' –

+0

@ 글렌 잭맨 BA 나는 그 존재를 전혀 몰랐다. 귀하의 추천에 따라 편집되었습니다. –