2017-08-09 40 views
0

我正在使用ldapsearch命令,如下所示,其中輸出字符串以「dn」開頭的特定字符串開頭,其中我只想要其他行關聯的行與此,說我不希望任何行開始與「dn」單線輸出包含空間剛剛。如何使用awk打印以特定字符串開頭的多行段

bash-4.1$ ldapsearch -h kts77 -LLL -xxx -b "ou=networks,ou=corp,ou=services,o=swift.com" '(&(cn=*noida*))' dn krvNetworkServiceKVP 

dn: ipnetworknumber=192.168.1, ou=networks,ou=corp,ou=services,o=swift.com 

dn: ipnetworknumber=192.168.2, ou=networks,ou=corp,ou=services,o=swift. 
com 

dn: ipnetworknumber=172.23.48, ou=networks,ou=corp,ou=services,o=swift.com 
krvNetworkServiceKVP: auto_master_lnx=auto_master_lnx_noida 
krvNetworkServiceKVP: SyslogServer=ralph-noida.swift.com 
krvNetworkServiceKVP: adsite=India 
krvNetworkServiceKVP: cupsserver=vlno-noidacups 
krvNetworkServiceKVP: dnsserver_1=192.168.1.100 
krvNetworkServiceKVP: dnsserver_2=192.168.2.100 

所需的輸出只能是:

dn: ipnetworknumber=172.23.48, ou=networks,ou=corp,ou=services,o=swift.com 
krvNetworkServiceKVP: auto_master_lnx=auto_master_lnx_noida 
krvNetworkServiceKVP: SyslogServer=ralph-noida.swift.com 
krvNetworkServiceKVP: adsite=India 
krvNetworkServiceKVP: cupsserver=vlno-noidacups 
krvNetworkServiceKVP: dnsserver_1=192.168.1.100 
krvNetworkServiceKVP: dnsserver_2=192.168.2.100 
+0

發佈期望的輸出 – RomanPerekhrest

+0

@RomanPerekhrest,我剛更新了所需輸出的問題。 – rockypy17

+0

對於第二個'dn'輸出塊 - 是com的真正的第二行還是一個錯字?如果後者修復它。 –

回答

2

這可能是你所需要的,假設你的發佈預計產量多數民衆贊成讓第2個輸出記錄一個錯字似乎是在2號線:

ldapsearch ... | awk -v RS= -v ORS='\n\n' -F'\n' 'NF>1' 

考慮您的意見,這也許是一個你所需要的:

ldapsearch ... | awk -v RS= -v ORS='\n\n' -F'\n' '$2!~/^ /' 

ldapsearch ... | awk -v RS= -v ORS='\n\n' -F'\n' '$2~/^krvNetworkServiceKVP/' 

或....基本上你需要告訴我們的標準是什麼印刷生產線。

+0

如果您可以添加有關開關的詳細信息 – rockypy17

+0

這將是很好的手冊頁的用途。 '人awk'。 –

+1

你是正確的:) ..我會看看,感謝你的時間! – rockypy17

相關問題