Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在unix文件的列中查找替换分隔符_Unix - Fatal编程技术网

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

如何在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" 请注意,这将恰好替换它找到的第三个逗号@。这意味着,如果

我有一个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"
请注意,这将恰好替换它找到的第三个逗号
@
。这意味着,如果第3列中没有逗号,那么它将替换第3列和第4列之间的分隔符。若前面的一列中有逗号,那个么它将改变它,而不是第3列中的逗号


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

感谢您的评论,我也这么认为,但想知道是否有办法只替换特定列中的所有分隔符。谢谢,尽管上面的命令会有所帮助。
100,'xyz','sample@data',5000