首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sed或grep (或任何其他正则表达式解决方案)删除随机字符串的一部分

使用sed或grep (或任何其他正则表达式解决方案)删除随机字符串的一部分
EN

Stack Overflow用户
提问于 2016-01-19 00:19:21
回答 2查看 127关注 0票数 0

我有一个由CMS生成的XML文件,它表示应该为可触摸应用程序显示哪些UI按钮。请查看以下内容:

代码语言:javascript
复制
</GlobalMenu>
 <Buttons>
  <Button name="salford_121"/>
  <Button name="salford_197" title="SkillsWorkshop"/>
  <Button name="salford_121"/>
  <Button name="salford_190" title="Salford Students"/>
  <Button name="salford_121"/>
  <Button name="GlobalMenu.xml" title="Main Menu"/>
 </Buttons>
</GlobalMenu>`

在生成此文件时,我需要运行一个bash脚本来删除title="xxxxx",在每行的末尾保留/>。标题可以是任何字母数字字符和符号序列,最长80个字符,包括空格。我还需要它忽略带有title="Main Menu"的行,这样才不会删除返回到GlobalMenu.xml文件的菜单的go back函数。它还将备份到custom.bak文件。

我正在翻遍所有的Regex教程,但我发现很难使用sed或grep来编写更改随机子字符串的东西,因为这些标题可以是任何东西。请原谅我的无礼,我才做了5天。

EN

回答 2

Stack Overflow用户

发布于 2016-01-19 00:25:52

您可以使用此sed

代码语言:javascript
复制
sed -i.bak '/ title="Main Menu"/!s/ title="[^"]*"//' file.xml

cat file.xml
</GlobalMenu>
 <Buttons>
  <Button name="salford_121"/>
  <Button name="salford_197"/>
  <Button name="salford_121"/>
  <Button name="salford_190"/>
  <Button name="salford_121"/>
  <Button name="GlobalMenu.xml" title="Main Menu"/>
 </Buttons>
</GlobalMenu>
票数 4
EN

Stack Overflow用户

发布于 2016-01-19 00:24:01

您要查找的是.特殊字符,它可以匹配任何内容。但是,您希望像[a-zA-Z ]这样的内容能够匹配只包含字母和空格的字符串(.很贪婪)。如果还想包含数字,可以指定\d:[a-zA-Z \d]

代码语言:javascript
复制
/title="[a-zA-Z \d]"/g

我也倾向于使用regexpal.com来仔细检查我的搜索字符串。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34859343

复制
相关文章

相似问题

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