试图在文件中找到各种类似的事件。
<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
结果如下所示:
<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' />我目前正在尝试的处理替换必要字符串的命令,但它也删除了整行的其余部分:
sed s/PCOIP_\(.*\)/0x86/g' file命令(原名为)使文件看起来像:
<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发布于 2022-03-28 09:38:18
您可以使用
sed "s/PCOIP_[^']*/0x86/g" file在这里,PCOIP_[^']*匹配PCOIP_,然后匹配除'字符以外的任何零或多个字符。整个匹配被替换为0x86子字符串。
请参阅在线演示:
#!/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"输出:
<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' />https://stackoverflow.com/questions/71606644
复制相似问题