linux - 如何使用 sed 或 awk 或类似的东西来替换每个奇怪的字符?

标签 linux awk sed

<分区>

我有以下字符串:

“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

仅替换了第二项。我需要改变每一个奇怪的事件。 对于 future ,用什么代码替换每一个奇怪的出现,。 ?

谢谢你的帮助

最佳答案

使用任何通过 -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 对我的原始回答的评论。

关于linux - 如何使用 sed 或 awk 或类似的东西来替换每个奇怪的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54239046/

相关文章:

linux - AWK - 使用输入中的列值在输出中创建新列

linux - 如何为python项目制作可执行文件

c++ - Linux 有没有办法使用 C/C++ 永久设置 IP 地址?

shell - 用另一个文件中指定的值替换字段

linux - 如何用文件每一行中的字母替换某些数字(根据该行第 5 列和第 6 列中存在的字母)?

linux - SED 替换为 'possible' 换行符

go - 用文件中的模式替换字符串

bash - sed问题:-bash:意外 token `('附近的语法错误

linux - 如何拒绝对服务器的访问,同时允许用户在编辑 etc/hosts 时访问

linux - X264的安装方法