Intentar localizar una variedad de incidentes similares dentro de un archivo.
<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' /> Estoy intentando simplemente ubicar cualquier instancia que comience con PCOIP_ y reemplazar esa cadena con 0x86
El resultado se verá así:
<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' />El comando que estoy probando actualmente que maneja el reemplazo de la cadena necesaria, excepto que también borra el resto de esa línea completa:
sed s/PCOIP_\(.*\)/0x86/g' fileEl comando tal como está hace que el archivo se vea así:
<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='0x86Puedes usar
sed "s/PCOIP_[^']*/0x86/g" file Aquí, PCOIP_[^']* coincide con PCOIP_ y luego con cero o más caracteres que no sean ' char. La coincidencia completa se reemplaza con una subcadena 0x86 .
Vea una demostración en línea:
#!/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"Producción:
<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' />