2015-10-20 96 views
0

我有一个unix文件,','是7列的分隔符。我怎么可以替换一列让我们说列3其中有','在其中的一些其他字符?如何在unix文件的列中查找替换分隔符

例如:COL1,COL2,COL3,COL4 ... 100, 'XYZ', '样品,数据',5000,

取代,在样本数据的一些性格。

感谢

回答

2

您可以使用sed与语法sed 's/from/to/N'更换图案N次出现时,如:

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

输出:

100,'xyz','[email protected]',5000 

注意,这将请将正好代替,直到找到@。这意味着如果第3列中没有逗号,那么它将替换第3列和第4列之间的分隔符。如果在较早的列中有逗号,则将改变该列而不是第3列中的那个。

我不确定unix如何区分字段中的字段分隔符逗号和逗号。也许我们可以保持单引号的数量,但我们需要更多地了解您的文件以提供完整的解决方案。

+0

感谢您的评论,我认为是相同的,但想知道是否有一种方法来替换特定列中的所有分隔符。谢谢,虽然上述命令将有所帮助。 – Santosh

相关问题