kulfi:
1行に含まれるマッチラインから前にLinuxホストと1本のライン上のファイルにマッチング行を印刷することを楽しみにして。
以下は、ログファイルからわずか内容は次のとおりです。
[2020/02/18 08:25:21.229198, 1] ../source3/lib/smbldap.c:1206(get_cached_ldap_connect)
Connection to LDAP server failed for the 1 try!
[2020/02/18 08:25:21.229221, 2] ../source3/passdb/pdb_ldap_util.c:287(smbldap_search_domain_info)
smbldap_search_domain_info: Problem during LDAPsearch: Timed out
どのような私が試してみました:
私は次のことを試してみましたgrep
し、sed
これは何とか動作します。..
$ egrep -B 1 "failed|Timed" /var/log/samba/smbd.log.old |tr -d "\n" | sed "s/--/\n/g"
[2020/02/18 08:25:21.229198, 1] ../source3/lib/smbldap.c:1206(get_cached_ldap_connect) Connection to LDAP server failed for the 1 try!
[2020/02/18 08:25:21.229221, 2] ../source3/passdb/pdb_ldap_util.c:287(smbldap_search_domain_info) smbldap_search_domain_info: Problem during LDAPsearch: Timed out
これは、クリーンなソリューションになりそうだしない、私は前方に、いくつかの専門家の1行を探しています、1つのライナーはAWK、sedは、grepのかさえものpythonで許容されます。
Błotosmętek:
それはで行うことができますawk
のみ。
awk ' /Timed|failed/ { print previous, $0; }; {previous = $0;}' /var/log/samba/smbd.log.old