Я пытаюсь извлечь фрагмент текста из файла, чтобы использовать его в качестве ввода для следующей команды. Слово всегда начинается с "JID_", а затем после него следует несколько случайных чисел / символов.
Например :
SelectorSet
Selector: InstanceID = JID_001264193601, __cimnamespace = root/dcim
Я хочу присвоить этой строке символов переменную $ JID. Как его вытащить из лески? Предпочтительнее использовать sed или grep, но подойдет любой метод.
Это сработало для меня
(03:45 PM):(Jacob@houston)~$ egrep -o "JID_[0-9]+" bah | cut -d _ -f2
001264193601
Хорошо, я просто взломал его на несколько минут и придумал следующее:
grep JID job.txt | sed -e "s/.*InstanceID = //" -e "s/,.*//"
С выводом этого:
JID_001264194552
Я думаю, это сработает.
Эта команда:
var=$(sed -n 's/.*InstanceID = JID_\([0-9]\+\),.*/\1/p')
echo $var
выведет это:
001264193601
для данного входа.
Если вы хотите сохранить "JID_":
var=$(sed -n 's/.*InstanceID = \(JID_[0-9]\+\),.*/\1/p')