gpt4 book ai didi

mysql - 如何使用 mysqlimport 解析使用特殊字符作为分隔符的文档?

转载 作者:行者123 更新时间:2023-11-29 07:08:46 25 4
gpt4 key购买 nike

我试过:

 mysqlimport --local  --fields-optionally-enclosed-by='\x254' 
--fields-terminated-by='\x14' testdb messages.txt

还有:

 mysqlimport --local  --fields-optionally-enclosed-by='\xFE' 
--fields-terminated-by='\cT' testdb messages.txt

然后我得到:

mysqlimport: Error: 1083, Field separator argument is not what is expected; check the manual, when using table: messages.

我试过双引号、无引号以及单引号,如上。有人知道正确的语法应该是什么吗?

最佳答案

根据文档(http://dev.mysql.com/doc/refman/5.0/en/load-data.html),mysqlimport 只有一些转义序列可用,它们是:

Character   Escape Sequence
\0 An ASCII NUL (0x00) character
\b A backspace character
\n A newline (linefeed) character
\r A carriage return character
\t A tab character.
\Z ASCII 26 (Control+Z)
\N NULL

因此,如果您有不寻常的行尾(如“\x02\n”),您别无选择,只能预先格式化您的文件。幸运的是,使用一点 sed 就很容易了。例如,以“\x02\n”结尾的行和以“\x01”结尾的字段,您可以使用以下 bash 脚本:

#!/bin/sh
FILE="$1.tmp"

# Copying
cp $1 $FILE
# Removing comments from file
sed -i '/^#/d' $FILE
# Replacing field separator
sed -i 's/\x01/\x00%/g' $FILE
# Replacing lineends
sed -i ':a;N;$!ba;s/\x02\n/\x00\n/g' $FILE

然后打了下面的mysqlimport

mysqlimport --fields-terminated-by="\0%" --lines-terminated-by="\0\n" [...] $FILE

应该会很好地工作。

关于mysql - 如何使用 mysqlimport 解析使用特殊字符作为分隔符的文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5811513/

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