gpt4 book ai didi

linux - 如何使用sed删除csv文件中的换行符

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:30:53 25 4
gpt4 key购买 nike

我有一个 csv 数据文件,其中的数据结构如下:

abc^"a detail explaination"^cde^"another detail explaination"^date

然而,由于用户输入,一些细节被输入了一个换行符,它破坏了程序。我需要删除双引号 "

之间的换行符

我尝试使用 sed 命令但它没有改变它,我尝试的命令是:

sed -e :1 -e 's@\(".*\)\n\(.*"\)@\1\\2@;t1' file.csv > file_changed.csv

我要尝试做的标准是替换封装在 2 个双引号之间的换行符 \n,因为这是 csv 的格式。

有人知道我的 sed 命令有什么问题吗?还是有其他更好的方法来实现这一点?

编辑

附加说明,我无法删除所有换行符,因为我需要将它们保留在行尾,因为这是一个用于导入目的的 csv 文件。只需要删除那些封装在双引号内的

最佳答案

sed ':cycle^J/^\([^"]*"[^"]*"\)*[^"]*"[^"]*$/ {N;s/\n//;b cycle^J}' file.csv > file_changed.csv

在每一行有任意数量的打开和关闭 " + 1 ",添加下一行,删除换行符并重新测试。打印结果行并转到下一个

关于linux - 如何使用sed删除csv文件中的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27498961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com