我在尋找一個看起來像下面一個文件中的模式上述特定字線。在這個例子中,我需要到grep一個字符串mgrpRFC822MailMember: [email protected]
grep的一個字符串,如果匹配查找與匹配線
如果上面的字符串相匹配,然後上去找到第一個dn:
線和打印
[email protected]
現在,問題是,該行dn:
不總是在相同的數字中(在下面的示例中,線路dn:
比grep'ed線路mgrpRFC822MailMember: [email protected]
高出3行)
這並非總是如此。它可以在任何數量的前mgrpRFC822MailMember: [email protected]
這裏的條件:
grep命令字符串 -
mgrpRFC822MailMember: [email protected]
如果匹配,尋找第一DN:線這條線以上和只打印
[email protected]
任何幫助,非常感謝。
time: 1364633264
dn: [email protected],ou=MessageRecipientGroups,dc=example,dc=com
changetype: modify
delete: mgrpRFC822MailMember
mgrpRFC822MailMember: [email protected]
-
replace: entryCSN
entryCSN: 20130330084739Z#00000b#00#000000
-
replace: modifiersName
modifiersName: uid=distlist-cleanup,ou=SysAccounts,dc=example,dc=com
我不要認爲這可以通過grep來合理完成,而是嘗試使用'awk'。當你看到一個'dn:'行保存一個變量的地址,並且當你看到'mgrpRFC822MailMember:foo.foo2 @ example.com'時,打印這個變量。 – Barmar 2013-04-22 20:44:08