Como pegar uma palavra de um arquivo usando sed ou grep

2

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.

    
por DellServerGeek 22.01.2010 / 22:11

3 respostas

2

Isso funcionou para mim

(03:45 PM):(Jacob@houston)~$ egrep -o "JID_[0-9]+" bah | cut -d _ -f2

001264193601

    
por 22.01.2010 / 22:46
1

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á.

    
por 22.01.2010 / 22:22
1

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')
    
por 22.01.2010 / 23:41

Tags