获取--lines-terminated-by在mysqldump中工作

时间:2013-08-29 09:35:00

标签: mysql mysqldump

以下是我用来创建数据库的制表符分隔备份的代码。

mysqldump --user=**** --fields-enclosed-by=\" --lines-terminated-by="\n" --password=**** --host=localhost --tab=/path/to/folder ****

我无法工作的是:

--lines-terminated-by="\n"

目前,如果我的MySQL数据库中有一个TEXT列,它输出如下:

"1"    "A test post"    "This is an example of text on multiple lines.
\
As you can see this is how it places it in the txt file.
\
Blah blah blah"
"2"    "Another post"    "More text....."

这就是我想要实现的目标

"1"    "A test post"    "This is an example of text on multiple lines.\nAs you can see this is how it places it in the txt file.\nBlah blah blah"
"2"    "Another post"    "More text....."

根据docs,使用--lines-terminated-by=...输出时支持--tab。但我似乎无法让它发挥作用。

1 个答案:

答案 0 :(得分:3)

您获得的输出与the documentation for SELECT ... INTO OUTFILE一致。换行符以默认转义字符为前缀,即\--lines-terminated-by选项指的是用作记录分隔符的字符,而不是字段内的换行符。

没有选项可以直接从mysqldump使输出看起来像您想要的那样,但您可以对文件进行后处理以获得所需的结果。例如,您可以使用以下内容过滤文件:

perl -pe 's/\\\n/\\n/'