Как извлечь слово из файла с помощью sed или grep

Как извлечь слово из файла с помощью sed или grep

Я пытаюсь вытащить фрагмент текста из файла, чтобы использовать его в качестве входных данных для следующей команды. Слово всегда начинается с "JID_", а затем следуют какие-то случайные числа/символы.

Например :

        SelectorSet
            Selector: InstanceID = JID_001264193601, __cimnamespace = root/dcim

Я хочу присвоить этой строке символов переменную $JID. Как мне вытащить ее из строки? sed или grep предпочтительнее, но подойдет любой метод.

решение1

Мне это помогло

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

001264193601

решение2

Ладно, я просто поразмыслил над этим несколько минут и придумал вот что:

grep JID job.txt | sed -e "s/.*InstanceID = //" -e "s/,.*//"

С выводом этого:

JID_001264194552

Я думаю, это сработает.

решение3

Эта команда:

var=$(sed -n 's/.*InstanceID = JID_\([0-9]\+\),.*/\1/p')
echo $var

выведет это:

001264193601

для данного ввода.

Если вы хотите сохранить «JID_»:

var=$(sed -n 's/.*InstanceID = \(JID_[0-9]\+\),.*/\1/p')

Связанный контент