首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除双引号中的双引号

如何删除双引号中的双引号
EN

Unix & Linux用户
提问于 2021-03-02 11:58:04
回答 5查看 790关注 0票数 0

我有这样的数据

代码语言:javascript
复制
"Apple grape","Banana"orange","Red green"
"Apple grape","Bananaorange","Red green"

我想使用"sed命令删除Bananaorange之间的单个awk引号。

EN

回答 5

Unix & Linux用户

发布于 2021-03-02 12:06:19

代码语言:javascript
复制
sed 's/\([^,]\)"\([^,]\)/\1\2/g' file

这将取代所有不重叠的非逗号序列([^,]),双引号和非逗号,用相同的东西,但没有双引号。

这不会处理模式在重叠子字符串上匹配的情况,例如,...""......"."...。我现在还不清楚这些情况是否会发生在用户的数据中。运行两次替换将解决这些情况。

输出是在终端上产生的,所以如果要保存文件,请重定向到它。

票数 3
EN

Unix & Linux用户

发布于 2021-03-02 19:21:35

假设您的字段中没有逗号或换行符,并且您的所有字段都是双引号(如您的示例所示),那么在每个Unix框的任何shell中使用任何sed:

代码语言:javascript
复制
$ sed 's/"//g; s/,/","/g; s/.*/"&"/' file
"Apple grape","Bananaorange","Red green"
票数 2
EN

Unix & Linux用户

发布于 2021-03-02 12:20:28

你可以试试这个:

代码语言:javascript
复制
$ sed 's/"\([^,"]*\)"\([^,"]*\)"/"\1\2"/g' foo.txt 
"Apple grape","Bananaorange","Red green"
"Apple grape","Bananaorange","Red green"
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/637152

复制
相关文章

相似问题

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