【发布时间】:2014-10-03 08:31:13
【问题描述】:
我有一个来自 LDAP 数据库的数据转储,我正在尝试提取一些关键字段。
awk '/mail:|uid:|generationQualifier:|initials:|givenName:|fullName:|messageServer:|telephoneNumber:|facsimileTelephoneNumber:/{s=s", "$0} /description:/ {s=s", "$0 "\n" ;} END{printf substr(s,3)}' dump2.txt >> mainDump2.csv
我能够恢复所有数据,但输出没有添加 \n '一直'。在大多数情况下,它确实在以下行中:
sASLoginSecret:: ngAAgAHkAbwB1vAG0AIABoAGkAZwBoACAAcwBjAGgAbwBvAGwAPwCwAAA
AabodpVFjlT1Hf8fQRXNPMvaHPPxCFuysBdTMQ9SX+ycAWnCQydlkBP+eo6VrspaTnOxk0rBf
MMI5x+F+TwogburQi3mphOY8ueffckjBDMgDFN2GlXCmLb1BQIVLFZz2HDUadB7JNl3OpfvRd7i0U
t4xMQ=
mail: kletcher@land.edu
uid: kfletcher
givenName: Kat
fullName: Kat letcher
Language: English
messageServer: cn=IIS5,ou=LAND,o=landCollege
title: Executive Director of Institutional Advancement
telephoneNumber: 432-555-4519
sn: Fletcher
securityEquals: cn=AllNWUsers-Group,ou=GROUPS,ou=LAND,o=landCollege
securityEquals: cn=MC-FacStaff-Group,ou=GROUPS,ou=LAND,o=landCollege
securityEquals: cn=MC-FullTimers-Group,ou=GROUPS,ou=LAND,o=landCollege
securityEquals: cn=InstAdvFolder-Group,ou=IA,ou=LAND,o=landCollege
passwordUniqueRequired: TRUE
passwordRequired: TRUE
passwordMinimumLength: 8
passwordExpirationTime: 20141130124749Z
passwordExpirationInterval: 15552000
passwordAllowChange: TRUE
ou: Institutional Advancement & MC Foundation
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: Person
objectClass: ndsLoginProperties
objectClass: Top
eMailAddress: 7#kfletcher@land.edu
loginTime: 20140911135740Z
loginMaximumSimultaneous: 2
loginIntruderAddress:: MSMKBwcB
loginGraceRemaining: 6
loginGraceLimit: 6
l: PAD 143
ndsHomeDirectory: cn=NWCL1_FACHOME,ou=LAND,o=landCollege#0#home\kfletche
r
groupMembership: cn=AllNWUsers-Group,ou=GROUPS,ou=LAND,o=landCollege
它的输出如下:
https://bpaste.net/show/cd743ee697d3
那是因为有些人没有传真号码,所以字符串匹配永远不会发生,也不会添加新行。 '但是',每个人都有一个电子邮件地址,但我无法弄清楚如何让它在邮件前面添加新行:然后打印该行。
我将如何编辑我的 awk 以输出诸如
\n mail: ...
?
【问题讨论】: