我有以下字符串:
“ 1,0,2,0,3,0,4,0,5,0,6,0,13,05,24233,55”。
如何使用awk或sed获取
“ 1.0,2.0,3.0,4.0,5.0,6.0,13.05,24233.55”?
我尝试使用
sed 's/,/./g' <<< "1,0,2,0,3,0,4,0,5,0,6,0,13,05,24233,55"
1.0.2.0.3.0.4.0.5.0.6.0.13.05.24233.55
还有
sed 's/,/./2' <<< "1,0,2,0,3,0,4,0,5,0,6,0,13,05,24233,55"
1,0.2,0,3,0,4,0,5,0,6,0,13,05,24233,55
仅替换了第二项。我需要改变每一个奇怪的事情。 对于将来,用替换奇数次出现的代码是什么。 ?
感谢您的帮助
答案 0 :(得分:1)
使用任何通过-E
支持ERE的sed,例如GNU sed和OSX / BSD sed:
$ echo "1,0,2,0,3,0,4,0,5,0,6,0,13,05,24233,55" | sed -E 's/,([^,]+(,|$))/.\1/g'
1.0,2.0,3.0,4.0,5.0,6.0,13.05,24233.55
以上内容的灵感来自@PesaThe对我的原始答案的评论。
答案 1 :(得分:-1)
尝试一下:
最后:
any
sed 's/[,]$/?/' YourFile
放在,
之间可以让您删除大多数具有正字面值的正则表达式行为(不适用于像[]
这样的字符,需要以其他方式进行管理^
就是要引用字符串的结尾测试中的$
意味着每次发生更改,您只希望1并在最后
对于内部:
g
由于存在交流,您需要循环和特殊测试