我有一些数据文件要导入到带有一些“唯一”分隔符的数据库中:
字段分隔符 (FS):SOH(ASCII 字符 1)
记录分隔符(RS):STX(ASCII 字符 2)+'\n'</p>
我想使用 COPY 命令将文件导入 Postgres,但是虽然我可以指定自定义字段分隔符,但它无法处理记录分隔符。
我也不能只从数据中删除 \002,因为如果其中一个字段(并且有)中有换行符,它会错误地将 COPY 认为它是一条新记录,而实际上它不是.
需要注意的一件重要事情:保留字段中的换行符并不重要,只要将它们转换为空格就可以了。
考虑到这一点,我正在考虑使用“sed”之类的东西将换行符转换为空格,然后将 \002 转换为换行符。但是,由于 sed 是一个基于行的工具,它似乎没有在每行的末尾看到换行符,也无法对它们进行搜索/替换。
是否有任何其他 unix 命令行工具可以完成这项工作?
编辑:我想我真正需要的是一个 unix 实用程序,它可以将文件(执行搜索/替换)处理为“二进制”而不将其拆分为行