2016-12-18 5 views
1

ここには、journalctl -o verboseでのjournaldの出力があります。 私はそれを絞って、必要な値だけをフィルタリングしようとしていました。辞書形式のファイルにgrepを使う方法

Fr 2016-12-02 18:54:33.675283 CET [s=asd;i=4;b=asdasd;m=asdasd;t=asdasd;x=asdasda] 
     PRIORITY=6 
     _BOOT_ID=5asd 
     _MACHINE_ID=3asd 
     _HOSTNAME=asd 
     _SOURCE_MONOTONIC_TIMESTAMP=0 
     _TRANSPORT=kernel 
     SYSLOG_FACILITY=0 
     SYSLOG_IDENTIFIER=kernel 
     MESSAGE=Iasdasadt 
     _SYSTEMD_CGROUP=/system.slice/systemd-journald.service 
     _SYSTEMD_UNIT=systemd-journald.service 

私のようなもの適用する - 私は.TXTに結果をダンプした後 -

egrep -in -o --color '_SYSTEMD_UNIT=[^\n]*' /JOURNALD/verbose.txt 

それを返します。

_SYSTEMD_UNIT = systemdに、ジュール

の代わりに、

_SYSTEMD_UNIT =にsystemd-journald.service

私は絶対に基本的なポイントを逃しています信じています。しかし、私は今までそれを見つけることができませんでした。あなたのアイデアを分かち合うことをためらってください。

+0

人である私はなぜ表示されません何かを言っているのではなく、投票を中止する。 – Elesmoth

+0

'[^ \ n] *'で次の改行まですべてを取得しようとしていますか? –

+0

はい、行全体を読み込もうとしました。 – Elesmoth

答えて

2

正規表現で改行が一致しません。それは "journald"の "n"と一致しています。 ([^\n]はここでリテラル\またはn文字以外のものに一致している。)あなたは代わりに、行の最後までの任意の文字列にマッチした、.*$を使用する必要があります。

egrep -in -o --color '_SYSTEMD_UNIT=.*$' /JOURNALD/verbose.txt

+0

ありがとう!私はコードスニペットに入れて、それは私の問題を解決しました。 – Elesmoth

関連する問題