处理巨大的文本文件以获取特定字段的出现

问题描述 投票:0回答:1

我有一个巨大的以下格式的文本文件。我想操纵此文件以获取部门字段的出现次数。每个部分都有一个称为department:的字段作为程序的结果,我需要一个Expected output部分中提到的CSV文件。如果解决方案使用sed或head / tail或awk,我将不胜感激。该文件确实很大。我有大约50,000多行代码。因此,非常感谢一种有效的方法。

Input format:


# Person1 Perosn2, AADDC Users, dummydata.somecompany.com
dn: CN=Person1 Perosn2,OU=AADDC Users,DC=dummydata,DC=somecompany,DC=com
objectClass: top
department: 234ABC
name: Person1 Perosn2
objectGUID:: MbCDVZpKbEWRxDUA5iN5IA==
userPrincipalName: [email protected]
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=dummydata,DC=somecompany
 ,DC=com
dSCorePropagationData: 16010101000000.0Z
lastLogonTimestamp: 132173602593105876
preferredLanguage: en-US
msDS-AzureADMailNickname: abcdef


# Person1 Perosn2, AADDC Users, dummydata.somecompany.com
dn: CN=Person1 Perosn2,OU=AADDC Users,DC=dummydata,DC=somecompany,DC=com
objectClass: top
department: 234ABC
name: Person1 Perosn2
objectGUID:: MbCDVZpKbEWRxDUA5iN5IA==
userPrincipalName: [email protected]
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=dummydata,DC=somecompany
 ,DC=com
dSCorePropagationData: 16010101000000.0Z
lastLogonTimestamp: 132173602593105876
preferredLanguage: en-US
msDS-AzureADMailNickname: abcdef

# Person3 Perosn4, AADDC Users, dummydata.somecompany.com
dn: CN=Person1 Perosn2,OU=AADDC Users,DC=dummydata,DC=somecompany,DC=com
objectClass: top
department: XYZ012
name: Person1 Perosn2
objectGUID:: MbCDVZpKbEWRxDUA5iN5IA==
userPrincipalName: [email protected]
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=dummydata,DC=somecompany
 ,DC=com
dSCorePropagationData: 16010101000000.0Z
lastLogonTimestamp: 132173602593105876
preferredLanguage: en-US
msDS-AzureADMailNickname: abcdef


Expected output

234ABC,2
XYZ012,1

我做了什么:

我使用此命令grep文件。grep '^department: *' file.txt

但是我不确定是否有办法使用sed,grep等单个命令来获得预期的输出。>>

我有一个巨大的以下格式的文本文件。我想操纵此文件以获取部门字段的出现次数。每个部分都有一个称为部门的字段:由于我的...

unix sed ldif
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.