linux - bash 将每隔一个逗号更改为指向

标签 linux bash shell unix sh

我正在处理以瑞典语格式编写的一组数据。在瑞典使用逗号代替小数点。

我的数据集是这样的:

1,188,1,250,0,757,0,946,8,960

1,257,1,300,0,802,1,002,9,485

1,328,1,350,0,846,1,058,10,021

1,381,1,400,0,880,1,100,10,418

我想将所有其他逗号更改为指向并具有如下输出:

1.188,1.250,0.757,0.946,8.960

1.257,1.300,0.802,1.002,9.485

1.328,1.350,0.846,1.058,10.021

1.381,1.400,0.880,1.100,10.418

知道如何使用简单的 shell 脚本来做到这一点。如果我分多个步骤进行,那很好。我的意思是,如果我先更改逗号的第一个实例,然后更改第三个实例,然后...

非常感谢您的帮助。

最佳答案

使用 sed

sed 's/,\([^,]*\(,\|$\)\)/.\1/g' file

1.188,1.250,0.757,0.946,8.960

1.257,1.300,0.802,1.002,9.485

1.328,1.350,0.846,1.058,10.021

1.381,1.400,0.880,1.100,10.418

关于linux - bash 将每隔一个逗号更改为指向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38368845/

相关文章:

JavaScript 任务调度器(批处理)

基于 TCL 的 Expect 的 Ruby 版本?

linux - sftp 使用 shell 脚本将文件从 Windows 服务器复制到 Linux 服务器

c - 如果内核支持 IPv6,如何从用户空间进行测试?

c++ - 用C/C++实现执行超时

python - 使用 Wine 和 py2exe 从 Python 项目创建 Windows 应用程序

linux - 找到一种方法使命令无法执行

regex - 使用正则表达式仅匹配 5xx

php - 打开: failed to open stream: No such file or directory - but file/directory exists

linux - zsh和普通shell如何共享环境变量和别名而不互相复制