【问题标题】:Replacing comma on specific lines only仅在特定行上替换逗号
【发布时间】:2012-04-07 07:16:40
【问题描述】:

我有一个逗号分隔的数据集。但我对它的格式有一点问题。我希望一切都采用 x,x,x 的形式

以下是我的数据集示例:

995970,16779453
995971,16828069
995972,
995973,16828069
995974,16827226

如您所见,我的大部分数据集格式正确,但我在单个 id# 上也有这些逗号(我的数据格式为 id#、connection#)。我将如何删除那些单个 id# 上的逗号?仅使用文本编辑器我似乎无法弄清楚。有什么建议吗?

编辑:我可以使用某种正则表达式仅将其从具有指定长度的 id 中删除吗?

Edit2:好的,我用一些正则表达式弄明白了,感谢所有帮助!

【问题讨论】:

  • "length" 在一个数字上?你的意思是幅度?字符串长度?杂散的逗号会造成什么样的麻烦?

标签: text csv replace


【解决方案1】:

在 vi 中会做类似的事情

:%s/,$//

这意味着

(输入行模式命令)

%(在每一行尝试该命令)

s(替代)

,$(匹配行尾的逗号)

(空替换文本)

有时您需要像/, *$/ 这样的东西来匹配逗号后跟0 个或多个尾随空格。您可以通过各种不同的方式在 Windows 上获取 vi;一种方法是install Cygwin.

【讨论】:

    【解决方案2】:

    您可以在Notepad++ 中选择正则表达式模式,并使用以下正则表达式,$ 进行查找和替换。将替换字段留空。

    【讨论】:

      【解决方案3】:

      使用 sed 命令:

      sed 's/, *//' < FILE
      

      或就地(需要 GNU sed):

      sed -ie 's/, *//' FILE
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-31
        • 1970-01-01
        • 1970-01-01
        • 2012-05-31
        • 1970-01-01
        • 1970-01-01
        • 2020-05-29
        • 1970-01-01
        相关资源
        最近更新 更多