sed

2013-04-25 4 views
0

을 사용하여 문자열에서 달러 기호 및 쉼표를 제거하십시오. 이미이 형식으로 게시되어 있으면 죄송합니다. 내 질문에 정확히 답변하는 것을 찾을 수 없습니다.sed

awk, sed 및 bash의 새로운 기능입니다. 클래스 프로젝트를 위해 이것을 알아야합니다.

모든 데이터가 큰 따옴표 안에 들어있는 쉼표로 구분 된 텍스트 파일이 있습니다.

예 조각 :

,"CHADWICK R GORE","C00538975","2012","$10,000.00",,"$10,000.00",,,"$5,000.00",,,"$15,000.00",,,,,,,,,,,,,"$15,000.00","$15,000.00",,,, 

나는 그들에 돈 필드에서 달러 기호 및 쉼표를 제거해야합니다. 나는 그것을하기 위해 sed를 사용했다. 내 나오지 코드 :

s/"\$\([^,"]*\),/"$\1/g 
s/"\$\([^"]*\)"/\1/g 

이 잘못된 것 같다, 그리고 수의 두 가지가있는 경우 모든 쉼표 치우는되지 않습니다.

도움이 될 것입니다. 감사합니다

답변

1

이 라인은 작업을 수행하여 예를 들어 텍스트에서

awk -F'"' -v OFS="\"" '{for(i=1;i<=NF;i++)if($i~/^\$[0-9.,]+$/)gsub(/[$,]/,"",$i)}1' 

출력은 다음과 같습니다 당신의 응답을

,"CHADWICK R GORE","C00538975","2012","10000.00",,"10000.00",,,"5000.00",,,"15000.00",,,,,,,,,,,,,"15000.00","15000.00",,,, 
+0

감사합니다! 그러면 주 셸 스크립트에서 어떻게 사용합니까? 다음과 같이 보입니다 : 'curl $ URL -s | sed -f sedcommands.sed | awk -f myawk.awk' myawk.awk 스크립트에는 특정 열을 합산하여 끝에 인쇄하는 코드가 들어 있습니다. – Sentenial

+0

빠른 & 더러운 방법은 출력을 내 awk 라인으로 파이프하는 것입니다. 'curl ... | sed -f .. | awk -f myawk.awk | awk -F '' ''(myline here)'와 같이'myawk.awk' (당신이 쓴다면) , 그리고 그것에 내 라인을 병합하려고합니다. – Kent