1

这是 journald via 的输出journalctl -o verbose。我试图缩小范围并仅过滤所需的值。

   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-jour

代替;

_SYSTEMD_UNIT=systemd-journald.service

我相信我完全错过了一个基本点。但是,直到现在我都找不到它。不要犹豫,分享您的想法。

4

1 回答 1

2

\n在您的正则表达式中与换行符不匹配;它与“journald”中的“n”相匹配。(在这里[^\n]匹配除文字\n字符之外的任何内容。)您应该改用.*$,它匹配直到行尾的任何字符序列:

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

于 2016-12-19T00:44:20.670 回答