2

我在一个文件上运行了 cat -v,看到 ^K 我希望看到某种空格,但不知道如何将该代码转换为我可以用来在 MySQL 中查找和替换字符的东西。

上下文:我有一个 mysql 字段,最后似乎有一个换行符,当我查询它时,输出会环绕。

    选择 t_unid_contact
    , concat('"',t_phone,'"')
    , 电话
    来自contacts_june_2013
    其中 T_UNID_Contact = 'CN726181';

    +----------------+--------------+------ --------+
    | t_unid_contact | concat('"',t_phone,'"') | 电话 |
    +----------------+--------------+------ --------+
    | CN726181 | "4155551212
                                  " | 4155551212
                                                           |
    +----------------+--------------+------ --------+
    一组中的 1 行(0.00 秒)

我尝试了这些 WHERE 子句,以尝试识别具有隐藏字符的行,但没有得到任何结果:

    其中 t_phone like '%\n%'
    其中 t_phone like '%\r%'
    其中 t_phone 像 '%\r\n%'
    其中 t_phone 像 '%\k%'
    其中 t_phone 正则表达式 '[\r]'
    其中 t_phone 正则表达式 '[\k]'
    其中 t_phone 正则表达式 '[\n]'
    其中 t_phone 正则表达式 '[\r\n]'

我将问题行输出到 csv 并运行它来查看它;这是输出:

    cat -v testwhitespace.csv
    "CN726181","4155551212^K"

有谁知道我如何识别表格中的空白字符,以便我可以使用 replace() 来摆脱它?

谢谢

4

2 回答 2

1

^K是垂直/行制表符的控制代码,U+000B

REPLACE(my_column, _utf8 x'0b', '')
于 2013-07-24T20:40:50.693 回答
0

要回答这个问题,如前所述,^K 是一个垂直制表符。作为 ^k == 11th char == b in hexdec

您声明您正在查看文件。

sed -e 's/\x0b/ /g' 文件

应该剥去它们的空间。

如果您想使用 SQL,请在 where 子句中尝试 \x0b。

于 2013-07-24T20:53:40.947 回答