【问题标题】:Postgres: copy errors when extra tab on tab delimited text filePostgres:在制表符分隔的文本文件上有额外的制表符时复制错误
【发布时间】:2016-10-18 19:05:38
【问题描述】:

我有下面的三个语句,它们都可以工作,直到它在我尝试导入的制表符分隔的文本文件的末尾出现一个带有额外制表符的行。 有什么方法可以告诉 Postgres 忽略多余的标签?

copy mara FROM 'c:/Postgres MME/AG00_MARA.txt' DELIMITER E'\t' NULL '' CSV HEADER;

copy mara FROM 'c:/Postgres MME/AG00_MARA.txt' DELIMITER E'\t' CSV HEADER;

copy mara FROM 'c:/Postgres MME/AG00_MARA.txt' WITH (FORMAT csv, DELIMITER E'\t', NULL '', HEADER);

Image of Notepad++ Where I see the extra tab at the end of the row

【问题讨论】:

    标签: postgresql csv


    【解决方案1】:

    不要试图忽略它,只需通过使用正则表达式 \t$ 删除所有尾随制表符来修复您的数据。例如在 Linux 中:

    sed -i 's/\t$//g' AG00_MARA.txt
    

    【讨论】:

    • 我的意思不是听起来很愚蠢,但是我在哪里运行这样的语句/代码?我认为这不在 pgAdminIII 中。
    • sed 是一个标准,应该预装在您的 linux 中。虽然现在我仔细查看了您的数据,但如果您打开正则表达式,我想您仍然可以在程序员记事本的查找和替换中使用 \t$
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多