如何使用sed或grep从文件中获取单词

我正在尝试从文件中提取一段文本以用作下一个命令的input。 这个词总是以“JID_”开始,然后是一些随机数字/字符。

例如 :

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

我想给这个string分配一个variables$ JID。 我如何从行中拉出它? sedgrep最好,但任何方法都很好。

这对我有效

 (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 

为给定的input。

如果你想保留“JID_”:

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