简体   繁体   English

执行psql copy命令时如何保留换行符

[英]How to preserve new line character while performing psql copy command

I have following content in my csv file(with 3 columns): 我的csv文件中有以下内容(三列):

141413,"\"'/x=/></script></title><x><x/","Mountain View, CA\"'/x=/></script></title><x><x/"

148443,"CLICK LINK BELOW TO ENTER^^^^^^^^^^^^^^","model\
\
xxx lipsum as it is\
\
100 sometimes unknown\
\
travel evening market\
"

When I import above mentioned csv in mysql using following command, it treats the backslash() as new line; 当我使用以下命令在mysql中导入上述csv时,它将backslash()视为新行; which is the expected behavior. 这是预期的行为。

LOAD DATA INFILE '1.csv' INTO TABLE users FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n';

MYSQL Output MYSQL输出

But when I try to import to psql using copy command, it treats \\ as a normal character. 但是,当我尝试使用复制命令导入到psql时,它将\\视为普通字符。

copy users from '1.csv' WITH (FORMAT csv, DELIMITER ',', ENCODING 'utf8', NULL "\N", QUOTE E'\"', ESCAPE '\');

postgres Output postgres输出

Try parsing these \\ before importing the CSV file, eg using perl -pe or sed and the STDIN from psql : 尝试在导入CSV文件之前解析这些\\ ,例如使用perl -pesed和来自psqlSTDIN

$ cat 1.csv | perl -pe 's/\\\n/\n/g' | psql testdb -c "COPY users FROM STDIN WITH (FORMAT csv, DELIMITER ',', ENCODING 'utf8', NULL "\N", QUOTE E'\"', ESCAPE '\');"

This is how it looks like after the import: 导入后的样子如下:

testdb=# select * from users;
   id   |                 company                 |                    location                     
--------+-----------------------------------------+-------------------------------------------------
 141413 | "'/x=/></script></title><x><x/          | Mountain View, CA"'/x=/></script></title><x><x/
 148443 | CLICK LINK BELOW TO ENTER^^^^^^^^^^^^^^ | model                                          +
        |                                         |                                                +
        |                                         | xxx lipsum as it is                            +
        |                                         |                                                +
        |                                         | 100 sometimes unknown                          +
        |                                         |                                                +
        |                                         | travel evening market                          +
        |                                         | 
(2 Zeilen)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM