linux - 如何使用 bash 在 linux 中用空格替换 csv 文件中的第三个逗号?

标签 linux bash csv

我有一个表格文件,其中的列由空格分隔。我编写了以下 bash 脚本将空格转换为逗号:

#!/bin/bash
for f in /home/foo/*; do
  i=`basename $f`
  i2=${i%.*}
  cut -f 1,2,3,4 < $f | tr -s [:blank:] ',' > $i2.csv
done

但是我错过了一些东西,我的日期时间在日期和时间之间有一个空格,现在那里有一个逗号。 datetime的逗号是第三个,有没有办法在linux中用空格替换所有行的第三个逗号?

最佳答案

sed s 命令有一个标志来指定将命令应用到哪个正则表达式的出现:

sed 's/,/ /3' infile

修改每一行的第三个,并用空格替换。

关于linux - 如何使用 bash 在 linux 中用空格替换 csv 文件中的第三个逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46851351/

相关文章:

用于在循环中探测 ssh 连接并在连接后启动日志命令的 Linux 脚本

linux - linux中的进程分组

linux - 如何在没有中间文件的情况下区分两个文件的顶行

linux - 通过终端有选择地从分隔文件中提取字段

python - 如何使用 csv.DictReader 读取存储在 S3 中的 csv?

excel - Excel 能否将 CSV 中的 URL 解释为超链接?

php - 使用 Ajax JQuery 和 PHP 将 .csv 文件导入 MySQL 的进度条

我可以从我的内核模块调用 mknod 吗?

linux - 复制 bash 目录后,在新目录中编辑文件名?

bash - 如何删除方括号和里面的任何文字?