Estou tentando extrair um trecho de texto de um arquivo para usar como entrada para o próximo comando. A palavra sempre começa com "JID_" e depois alguns números/caracteres aleatórios.
Por exemplo :
SelectorSet
Selector: InstanceID = JID_001264193601, __cimnamespace = root/dcim
Quero atribuir uma variável $JID a essa sequência de caracteres. Como faço para retirá-lo da linha? sed ou grep de preferência, mas qualquer método serve.
Responder1
Isso funcionou para mim
(03:45 PM):(Jacob@houston)~$ egrep -o "JID_[0-9]+" bah | cut -d _ -f2
001264193601
Responder2
Ok, eu apenas hackeei por alguns minutos e descobri isto:
grep JID job.txt | sed -e "s/.*InstanceID = //" -e "s/,.*//"
Com saída disso:
JID_001264194552
Eu acho que vai funcionar.
Responder3
Este comando:
var=$(sed -n 's/.*InstanceID = JID_\([0-9]\+\),.*/\1/p')
echo $var
produzirá isto:
001264193601
para a entrada fornecida.
Se você quiser manter o "JID_":
var=$(sed -n 's/.*InstanceID = \(JID_[0-9]\+\),.*/\1/p')