使用grep和Textwrangler查找/替换

时间:2012-08-09 09:46:04

标签: regex grep

我在TextWrangler上使用grep来查找此类型的字符串:

4,600.00

我的正则表达式命令如下:

\d.\d{3}.\d{2}

似乎正确找到了字符串。我希望将4,600.00字符串替换为4600.00,因为我希望将数据保存在.csv文件中。如何从我找到的每个号码中删除逗号?

3 个答案:

答案 0 :(得分:12)

搜索:(\d{1,3}),(\d{1,3})\.(\d{1,2})

替换:\1\2.\3

适用于TextWrangler。

答案 1 :(得分:1)

awk oneliner:

awk  --re-interval  '{x=gensub(/([0-9]{1,3}),([0-9]{3}\.[0-9]{2})/,"\\1\\2","g");print x}' file

试验:

kent$  awk --version|head -1
GNU Awk 3.1.6

kent$  echo "foo,bar,blah,46,000.00,some,more"|awk --re-interval  '{x=gensub(/([0-9]{1,3}),([0-9]{3}\.[0-9]{2})/,"\\1\\2","g");print x}'
foo,bar,blah,46000.00,some,more

答案 2 :(得分:0)

使用sed的一种方式:

sed -r 's/([0-9]{1,3}),([0-9]{3}\.[0-9]{2})/\1\2/g' file.txt

您可以添加-i标志以将更改直接写入文件。