bash - 在双引号之间插入逗号的 sed 模式

标签 bash shell unix sed

我对 sed Regex 模式非常陌生,并且坚持要求。我从数据库中提取的记录很少

"Name" "Age" "From ABC" "12"

现在我将其导出为逗号分隔的 CSV 我正在使用 's/[[:space:]]\+/,/g' This Regex

它给我的结果是

"Name","Age","From,ABC","12"

这很好,除了第三列插入了 , 作为空格 现在我想在双引号之间插入 ,

任何人都可以指导我吗?

使用 's/"[[:space:]]\+"/","/g' 正则表达式我能够得到 "Name","Age","From,ABC","12" 但是当我有 "Name","","From,ABC","12" 它失败时它给出 "Name",,","从,ABC","12"

有没有其他方法可以解决这个问题?

最佳答案

""替换为",":

sed 's/"[[:space:]]\+"/","/g'

编辑以捕获多个空格

关于bash - 在双引号之间插入逗号的 sed 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48690366/

相关文章:

python - 如何在Python中执行这个unix进程?连接参数时出现问题

linux - 使用 Shell 计算多个文件的平均值而不考虑缺失值

bash - Grep 跨 Hadoop 文件系统中的多个文件

使用扩展模式匹配的 bash case 语句语法错误

linux - bash sed 与/^$/d;G 命令

ruby - 在 bash 中打开一个命名管道,而不读取或写入它

c - 如何在C程序和shell脚本之间使用flock

linux - 是否可以在 Pharo smalltalk 中编写 shell 命令?

regex - 如何使用sed匹配月日年模式?

linux - 比较 Bash 中按字母顺序排列的字符串、测试与双括号语法