如何在unix文件中的列内查找替换分隔符

时间:2015-10-20 20:52:48

标签: unix

我有一个unix文件,','是包含7列的分隔符。我怎么能替换一个列,让我们说第3列中包含','和其他字符?

ex:col1,col2,col3,col4 ...... 100, 'XYZ', '样品,数据',5000,

将样本中的数据替换为某个字符。

由于

1 个答案:

答案 0 :(得分:2)

您可以使用sed将语法N替换为sed 's/from/to/N'模式,如下所示:

sed 's/,/@/3' <<<"100,'xyz','sample,data',5000"

输出:

100,'xyz','sample@data',5000

请注意,这会将完全替换为@找到的第三个逗号。这意味着如果第3列中没有逗号,那么它将替换第3列和第4列之间的分隔符。如果在较早的列中有逗号,则它将更改而不是第3列中的逗号。

我不确定unix如何区分字段内的字段分隔符逗号和逗号。也许我们可以记录单引号的数量,但我们需要了解更多有关您文件的信息才能提供完整的解决方案。