首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >sed命令不起作用...how剥离管道

sed命令不起作用...how剥离管道
EN

Stack Overflow用户
提问于 2015-12-10 07:45:42
回答 4查看 210关注 0票数 0

我有一个数据文件,我正在尝试导入到redshift (postgress数据库)。我正在尝试使用分隔符'|‘导入postgres。但是有些数据在字符串数据本身中有'|‘,例如:

代码语言:javascript
运行
复制
73779087|"UCGr4c0_zShyHbctxJJrJ03w"|"ItsMattSpeaking | SuPra" 

所以我尝试了这个sed命令:

代码语言:javascript
运行
复制
sed -i -E "s/(.+|)(.+|)|/\1\2\\|/g" inputfile.txt >outputfile.txt

您知道sed命令有什么问题吗?将最后一个字符串中的|替换为|转义字符,这样Redshift就不会将其视为分隔符?任何帮助都是非常感谢的。

EN

Stack Overflow用户

发布于 2015-12-10 17:22:02

这可能适用于您(GNU sed):

代码语言:javascript
运行
复制
sed -r ':a;s/^([^"]*("[^"|]*"[^"]*)*"[^"|]*)\|/\1/g;ta' file

这将删除双引号中的|,但它不支持带引号的引号,因此要小心!

票数 1
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34191192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档