如何在unix文件的列中查找替换分隔符
我有一个unix文件,“,”是带有7列的分隔符。我怎样才能将第3列中包含“,”的列替换为其他字符 例:col1,col2,col3,col4。。。 100,'xyz','sample,data',5000 在示例中,将数据替换为某个字符如何在unix文件的列中查找替换分隔符,unix,Unix,我有一个unix文件,“,”是带有7列的分隔符。我怎样才能将第3列中包含“,”的列替换为其他字符 例:col1,col2,col3,col4。。。 100,'xyz','sample,data',5000 在示例中,将数据替换为某个字符 谢谢您可以使用sed将出现的N模式替换为语法sed's/from/to/N',如下所示: sed 's/,/@/3' <<<"100,'xyz','sample,data',5000" 请注意,这将恰好替换它找到的第三个逗号@。这意味着,如果
谢谢您可以使用
sed
将出现的N
模式替换为语法sed's/from/to/N'
,如下所示:
sed 's/,/@/3' <<<"100,'xyz','sample,data',5000"
请注意,这将恰好替换它找到的第三个逗号@
。这意味着,如果第3列中没有逗号,那么它将替换第3列和第4列之间的分隔符。若前面的一列中有逗号,那个么它将改变它,而不是第3列中的逗号
我不知道unix如何区分字段分隔符逗号和字段中的逗号。也许我们可以计算单引号的数量,但我们需要更多地了解您的文件,以提供完整的解决方案。感谢您的评论,我也这么认为,但想知道是否有办法只替换特定列中的所有分隔符。谢谢,尽管上面的命令会有所帮助。
100,'xyz','sample@data',5000