2013-04-25 201 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來做到這一點。 我的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

感謝您的答覆! 然後我會如何在我的主shell腳本中使用它? 看起來像這樣: 'curl $ URL -s | sed -f sedcommands.sed | awk -f myawk.awk' myawk.awk腳本包含總結某些列並在最後打印它們的代碼。 – Sentenial 2013-04-25 21:57:40

+0

快速和骯髒的方式是管道輸出到我的awk線。像'curl ... | sed -f .. | awk -f myawk.awk | awk -F'''。(myline here)'但是你可以檢查你的'myawk.awk'(如果它是你寫的) ,並嘗試合併我的行。 – Kent 2013-04-25 22:00:30