Estoy intentando extraer un fragmento de texto de un archivo para usarlo como entrada para el siguiente comando. La palabra siempre comienza con "JID_" y luego algunos números/caracteres aleatorios.
Por ejemplo :
SelectorSet
Selector: InstanceID = JID_001264193601, __cimnamespace = root/dcim
Quiero asignar una variable $JID a esa cadena de caracteres. ¿Cómo lo saco de la línea? Preferiblemente sed o grep, pero cualquier método está bien.
Respuesta1
Esto funcionó para mí
(03:45 PM):(Jacob@houston)~$ egrep -o "JID_[0-9]+" bah | cut -d _ -f2
001264193601
Respuesta2
Ok, lo pirateé durante unos minutos y se me ocurrió esto:
grep JID job.txt | sed -e "s/.*InstanceID = //" -e "s/,.*//"
Con salida de esto:
JID_001264194552
Creo que eso funcionará.
Respuesta3
Este comando:
var=$(sed -n 's/.*InstanceID = JID_\([0-9]\+\),.*/\1/p')
echo $var
generará esto:
001264193601
para la entrada dada.
Si desea conservar el "JID_":
var=$(sed -n 's/.*InstanceID = \(JID_[0-9]\+\),.*/\1/p')