我有一个数据文件,我正在尝试导入到redshift (postgress数据库)。我正在尝试使用分隔符'|‘导入postgres。但是有些数据在字符串数据本身中有'|‘,例如:
73779087|"UCGr4c0_zShyHbctxJJrJ03w"|"ItsMattSpeaking | SuPra" 所以我尝试了这个sed命令:
sed -i -E "s/(.+|)(.+|)|/\1\2\\|/g" inputfile.txt >outputfile.txt您知道sed命令有什么问题吗?将最后一个字符串中的|替换为|转义字符,这样Redshift就不会将其视为分隔符?任何帮助都是非常感谢的。
发布于 2015-12-10 17:22:02
这可能适用于您(GNU sed):
sed -r ':a;s/^([^"]*("[^"|]*"[^"]*)*"[^"|]*)\|/\1/g;ta' file这将删除双引号中的|,但它不支持带引号的引号,因此要小心!
https://stackoverflow.com/questions/34191192
复制相似问题