Ich versuche, einen Textabschnitt aus einer Datei zu ziehen, um ihn als Eingabe für den nächsten Befehl zu verwenden. Das Wort beginnt immer mit „JID_“ und danach folgen einige zufällige Zahlen/Zeichen.
Zum Beispiel :
SelectorSet
Selector: InstanceID = JID_001264193601, __cimnamespace = root/dcim
Ich möchte dieser Zeichenfolge die Variable $JID zuweisen. Wie ziehe ich sie aus der Zeile? Am besten sed oder grep, aber jede Methode ist in Ordnung.
Antwort1
Das hat bei mir funktioniert
(03:45 PM):(Jacob@houston)~$ egrep -o "JID_[0-9]+" bah | cut -d _ -f2
001264193601
Antwort2
Ok, ich habe ein paar Minuten daran herumgebastelt und bin auf Folgendes gestoßen:
grep JID job.txt | sed -e "s/.*InstanceID = //" -e "s/,.*//"
Mit der Ausgabe davon:
JID_001264194552
Ich denke, das wird funktionieren.
Antwort3
Dieser Befehl:
var=$(sed -n 's/.*InstanceID = JID_\([0-9]\+\),.*/\1/p')
echo $var
gibt Folgendes aus:
001264193601
für die gegebene Eingabe.
Wenn Sie die „JID_“ behalten möchten:
var=$(sed -n 's/.*InstanceID = \(JID_[0-9]\+\),.*/\1/p')