首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sed无意中抹去了行的剩余部分

sed无意中抹去了行的剩余部分
EN

Stack Overflow用户
提问于 2022-03-24 17:09:10
回答 1查看 38关注 0票数 1

试图在文件中找到各种类似的事件。

代码语言:javascript
复制
<address DOMAIN='0x000' bus='PCOIP_USB0' slot='0x00' function '0x0' />
<address DOMAIN='0x000' bus='PCOIP_USB1' slot='0x00' function '0x0' />
<address DOMAIN='0x000' bus='PCOIP_USB7' slot='0x00' function '0x0' />
<address type='bmu' domain='0x000' bus='PCOIP_USB9' slot='0x00' function '0x0' />
<address DOMAIN='0x000' bus='PCOIP_USB4' slot='0x00' function '0x0' />

我试图简单地定位以PCOIP_开头的任何实例,并将该字符串替换为0x86

结果如下所示:

代码语言:javascript
复制
<address DOMAIN='0x000' bus='0x86' slot='0x00' function '0x0' />
<address DOMAIN='0x000' bus='0x86' slot='0x00' function '0x0' />
<address DOMAIN='0x000' bus='0x86' slot='0x00' function '0x0' />
<address type='bmu' domain='0x000' bus='0x86' slot='0x00' function '0x0' />
<address DOMAIN='0x000' bus='0x86' slot='0x00' function '0x0' />

我目前正在尝试的处理替换必要字符串的命令,但它也删除了整行的其余部分:

代码语言:javascript
复制
sed s/PCOIP_\(.*\)/0x86/g' file

命令(原名为)使文件看起来像:

代码语言:javascript
复制
<address DOMAIN='0x000' bus='0x86
<address DOMAIN='0x000' bus='0x86
<address DOMAIN='0x000' bus='0x86
<address type='bmu' domain='0x000' bus='0x86
<address DOMAIN='0x000' bus='0x86
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-28 09:38:18

您可以使用

代码语言:javascript
复制
sed "s/PCOIP_[^']*/0x86/g" file

在这里,PCOIP_[^']*匹配PCOIP_,然后匹配除'字符以外的任何零或多个字符。整个匹配被替换为0x86子字符串。

请参阅在线演示:

代码语言:javascript
复制
#!/bin/bash
s="<address DOMAIN='0x000' bus='PCOIP_USB0' slot='0x00' function '0x0' />
<address DOMAIN='0x000' bus='PCOIP_USB1' slot='0x00' function '0x0' />
<address DOMAIN='0x000' bus='PCOIP_USB7' slot='0x00' function '0x0' />
<address type='bmu' domain='0x000' bus='PCOIP_USB9' slot='0x00' function '0x0' />
<address DOMAIN='0x000' bus='PCOIP_USB4' slot='0x00' function '0x0' />"
sed "s/PCOIP_[^']*/0x86/g" <<< "$s"

输出:

代码语言:javascript
复制
<address DOMAIN='0x000' bus='0x86' slot='0x00' function '0x0' />
<address DOMAIN='0x000' bus='0x86' slot='0x00' function '0x0' />
<address DOMAIN='0x000' bus='0x86' slot='0x00' function '0x0' />
<address type='bmu' domain='0x000' bus='0x86' slot='0x00' function '0x0' />
<address DOMAIN='0x000' bus='0x86' slot='0x00' function '0x0' />
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71606644

复制
相关文章

相似问题

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