
- 帖子
- 243
- 积分
- 303
- 技术
- 0
- 捐助
- 0
- 注册时间
- 2010-4-11
|
gawk替换\字符问题
本帖最后由 shootman2 于 2018-9-27 12:57 编辑
工作中遇到这么一个问题。将一个文本文件中的数据通过mysql的load命令加载到mysql数据库中,
使用命令加载后,没报任何错误。但是在对数据进行查询操作的时候,发现有些数据加载是错位的。
仔细分析后发现,是因为分隔符前面有个转义符导致分隔符不起作用
例如:
文本内容:
aaa\|bbb|ccc|ddd
加载后结果为:
AAA BBB CCC DDD
aaa|bbb ccc ddd NULL
起初,我的解决方法是将 \ 字符替换成 \\ ,加载后就正常了。但是文件体积巨大,有3个G左右。
使用fr替换时报错,提示读取文件失败。后又替换成sed实现,sed虽然不报错,但是耗时太长,
最后换成gawk实现,耗时还算正常。但是替换总是不成功,也不报错。语句如下,请大神帮忙看看
gawk "{sub(/\\/,/\\\\/,$0);print $0}" "F:\load_data.txt">123.txt |
|