我在使用的TextWrangler到grep
發現這種類型的字符串替換:查找/使用grep和
4,600.00
我的正則表達式的命令如下:
\d.\d{3}.\d{2}
這似乎找到字符串正確。我想用4600.00
替換字符串4,600.00
,因爲我希望將這些數據保存在.csv
文件中。我如何從每個我找到的號碼中刪除逗號?
我在使用的TextWrangler到grep
發現這種類型的字符串替換:查找/使用grep和
4,600.00
我的正則表達式的命令如下:
\d.\d{3}.\d{2}
這似乎找到字符串正確。我想用4600.00
替換字符串4,600.00
,因爲我希望將這些數據保存在.csv
文件中。我如何從每個我找到的號碼中刪除逗號?
搜索:(\d{1,3}),(\d{1,3})\.(\d{1,2})
替換:\1\2.\3
作品中的TextWrangler。
AWK oneliner:
awk --re-interval '{x=gensub(/([0-9]{1,3}),([0-9]{3}\.[0-9]{2})/,"\\1\\2","g");print x}' file
測試:使用sed
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
這裏真正的問題是TextWrangler,而不是命令行 – 2017-07-07 16:28:58
方式一:
sed -r 's/([0-9]{1,3}),([0-9]{3}\.[0-9]{2})/\1\2/g' file.txt
您可以添加-i
標誌直接將更改寫入文件。
我猜你的行不僅包含這個數字,而且還包含「foo,bar,blah,4,600,000.00,some,more」等字樣,但如果該行爲「foo,bar,blah,999,600,000.00 ...」,該怎麼辦你說999和600000.00是兩列?你的輸入文件中是否有其他規則? – Kent 2012-08-09 10:18:52
數字保持在100,000以下,所以我只需要找到',000.00'。我不清楚替換代碼是什麼;我試過'\ d \ d {3}。\ d {2} '。 – djq 2012-08-09 10:36:50