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

相關內容