我有一个递归的文件夹列表,我需要在其中找到字符,但我不希望结果中包含子文件夹。我需要找到许多不同的字符,这些字符在迁移数据时会出现问题,包括星号,双周期等。
对于这个例子,我将使用双周期(..)。我只需要第一行,第四行和第七行
/System/Modules/Aspect/dmc_attachments_aspect..J5_D65
/System/Modules/Aspect/dmc_attachments_aspect..J5_D65/External Interfaces
/System/Modules/Aspect/dmc_attachments_aspect..J5_D65/Miscellaneous
/System/Modules/Collaboration/com.documentum.services.collaboration.IAttachmentsManager..J5_D65
/System/Modules/Collaboration/com.documentum.services.collaboration.IAttachmentsManager..J5_D65/External Interfaces
/System/Modules/Collaboration/com.documentum.services.collaboration.IAttachmentsManager..J5_D65/Miscellaneous
/System/Modules/TBO/dm_message_archive..J5_D65
/System/Modules/TBO/dm_message_archive..J5_D65/External Interfaces
另一个例子是星号 - 我只需要第一行,第四行和第七行。
/Public/Test/*Training
/Public/Test/*Training*/Documentation
/Public/Test/*Training*/SOPs
/Public/Test/Project**Tracking
/Public/Test/Project**Tracking/01
/Public/Test/Project**Tracking/02
/Public/Home*
/Public/Home*/Test
我可以使用正则表达式来满足这个要求吗?我很高兴运行多个查询/报告并更新主角(..或*)
我想澄清这个问题,以便我可以避免XY问题。
我们正在将数据从Documentum迁移到SharePoint,而Documentum没有相同的文件和文件夹名称限制,因此我们必须在迁移之前或动态地解决这些问题。我有一个包含Documentum当前所有文件夹的大文本文件(950k行),我试图查找因包含这些字符而不会迁移的所有文件夹。
问题在于,执行基本egrep '\*'
不仅会提供包含此字符的顶级文件夹,还会提供所有子文件夹,这将剔除计数。
答案 0 :(得分:1)
让我们说你正在寻找双重时期:
.*\.\.[^/]*$
将匹配两个句点,后跟无限数量的非斜杠字符,直到字符串结尾。通常,将\.\.
替换为您要查找的内容。
在regex101.com查看。 (星号版本here)。