我有一个unix文件,','是包含7列的分隔符。我怎么能替换一个列,让我们说第3列中包含','和其他字符?
ex:col1,col2,col3,col4 ...... 100, 'XYZ', '样品,数据',5000,
将样本中的数据替换为某个字符。
由于
答案 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如何区分字段内的字段分隔符逗号和逗号。也许我们可以记录单引号的数量,但我们需要了解更多有关您文件的信息才能提供完整的解决方案。