首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使sed模式“智能化”

如何使sed模式“智能化”
EN

Stack Overflow用户
提问于 2012-11-29 14:57:35
回答 1查看 86关注 0票数 0

我有一份文件如下:

代码语言:javascript
运行
复制
None44  DET20_22526;size=4; DET20_39906;size=2; DEX29.h_40767;size=4;    DEX27.h_779;size=6757;

目标:

代码语言:javascript
运行
复制
None44  DET20_22526 DET20_39906 DEX29.h_40767    DEX27.h_779

只需删除";size=**;

size=后的数字范围为1-6757 (最多)。

我一直在努力:

代码语言:javascript
运行
复制
sed 's/;size=*;//g'

我对sed和regX的有限知识限制了我对此的理解。

有人能指出如何移除所有的中间部分吗?

如何让我的社会意识到我能用英语表达什么.但还不能编码:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-29 15:04:23

你可以试试:

代码语言:javascript
运行
复制
sed 's/;size=[0-9]*;//g'

这个正则表达式是什么意思?

  • s/.../.../g表示:将第一个表达式的每个匹配替换为第二个表达式
  • 第一个表达式,在我们的例子中,是;size=[0-9]*;,它应该分解为:
    • 确切的字符串;size=,后面跟着
    • 在范围0-9中出现的任何数字为零或更多,然后是
    • ;

  • 第二个表达式是空的,所以匹配的部分被抑制。
  • 最后一个g是一个选项,它告诉sed匹配所有匹配的部件,而不是停留在第一个部分。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13628498

复制
相关文章

相似问题

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