【发布时间】:2011-02-19 07:25:00
【问题描述】:
我必须在这里处理的文件是 LDAP 提取的结果,但我最终需要将信息格式化为电子表格可以使用的东西。
所以,数据如下:
DataDataDataDataDataDataDataDataDataDataDataDataDataDataDataData
DataDataDataDataDataDataDataDataDataDataDataDataDataDataDataData
displayName: John Doe
name: ##userName
DataDataDataDataDataDataDataDataDataDataDataDataDataDataDataData
DataDataDataDataDataDataDataDataDataDataDataDataDataDataDataData
displayName: Jane Doe Jr
name: ##userName
DataDataDataDataDataDataDataDataDataDataDataDataDataDataDataData
DataDataDataDataDataDataDataDataDataDataDataDataDataDataDataData
displayName: Ted Doe
name: ##userName
我需要导出的格式是:
firstName lastName userName
firstName lastName userName
firstName lastName userName
空格是制表符,因此我可以将该文件导入数据库。我有在 VBScript 中执行此操作的经验,但我正在尝试切换到使用 Perl 来尽可能多地进行服务器管理。
我不确定我想要什么的语法基本上是
while not endoffile{
detect "displayName: " & $firstName & " " & $lastName
detect "name: ##" & $userName
write $firstName tab $lastName tab $userName to file
}
另外,如果有人能向我指出一个专门针对 Perl 使用的文本解析语法的资源,我将不胜感激。我遇到的大多数资源都不是很有帮助。
另外,一些用户名是数字。前两个数字仍需要修剪,但如果有帮助,用户名的长度始终为 6 个字符。
【问题讨论】:
-
值得注意的是,从单个字符串中解析出名字和姓氏字段并非易事。考虑
Sarah Michelle Gellar和Farrah Fawcett Majors的情况。一个正确的解析器(有可能)会知道解析这些名字的正确方法是“Sarah Michelle”、“Gellar”和“Farah”、“Fawcett Majors”。你将如何处理这些边缘情况取决于你,但你应该确保有一个指定的行为。否则,Robert De Niro 和他的朋友会破坏你的软件。