如何使用 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')

相关内容