使用sed从字符串中删除美元符号和逗号

时间:2013-04-25 21:34:57

标签: regex sed expression

抱歉,如果已经以某种形式发布。 我找不到任何能完全回答我问题的内容。

我是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 个答案:

答案 0 :(得分: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",,,,