我正在使用ldapsearch命令,其中我的输出字符串以" dn"开头的特定字符串开头。我只想要有另一条线与此相关的行,说我不想要任何以" dn"开头的行。单线输出包含空格。
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 :(得分:1)
这可能就是您所需要的,假设您发布的预期输出有一个拼写错误,使第二个输出记录显示为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/'
或....基本上你需要告诉我们印刷线的标准是什么。