0

抱歉,如果这已经以某种形式发布。我找不到任何能准确回答我的问题的东西。

我是 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

这似乎是错误的,如果数字中有两个,并没有去掉所有的逗号。

任何帮助,将不胜感激!谢谢

4

2 回答 2

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",,,,
于 2013-04-25T21:48:42.980 回答
0

tr 更轻松

tr -d '$,'

-d参数删除那些字符

如果你必须使用sed

sed 's/[$,]//g'
于 2013-04-25T21:38:57.740 回答