Isso funcionou para mim
(03:45 PM):(Jacob@houston)~$ egrep -o "JID_[0-9]+" bah | cut -d _ -f2
001264193601
Estou tentando extrair um pedaço 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 aleatórios / caracteres depois disso.
Por exemplo:
SelectorSet
Selector: InstanceID = JID_001264193601, __cimnamespace = root/dcim
Eu quero atribuir uma variável $ JID a essa sequência de caracteres. Como faço para puxar da linha? sed ou grep preferencialmente, mas qualquer método é bom.
Isso funcionou para mim
(03:45 PM):(Jacob@houston)~$ egrep -o "JID_[0-9]+" bah | cut -d _ -f2
001264193601
Ok, eu acabei de hackeá-lo por alguns minutos e descobri isso:
grep JID job.txt | sed -e "s/.*InstanceID = //" -e "s/,.*//"
Com a saída disso:
JID_001264194552
Acho que isso funcionará.
Este comando:
var=$(sed -n 's/.*InstanceID = JID_\([0-9]\+\),.*//p')
echo $var
produzirá isso:
001264193601
para a entrada dada.
Se você quiser manter o "JID _":
var=$(sed -n 's/.*InstanceID = \(JID_[0-9]\+\),.*//p')