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')

関連情報