次のコマンドの入力として使用するために、ファイルからテキストの一部を取得しようとしています。単語は常に「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')