Como pegar uma palavra de um arquivo usando sed ou grep

Como pegar uma palavra de um arquivo usando sed ou grep

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')

informação relacionada