在格式不正确的文件列表中捕获大小为零的文件名的多行regex



我已经捕获了文件列表txt文件(来自win10上的powershell(
我只有结果文本文件,无法访问原始存储文件。所以,我现在只需要处理这个文本文件
我可以使用vs代码编辑器或其他gnu工具,如"awk";或";sed";。

创建了";空文件列表";从中(大小为零的文件列表(
文件如下所示。。。

Directory: D:etc
Mode                 LastWriteTime         Length Name                                                                 
----                 -------------         ------ ----                                                                 
d-----        2017-03-27  오전 11:41                Start_Here_Mac.app                                                   
-a----        2017-02-07   오후 5:00             0 Autorun.inf                                                          
-a----        2017-02-07   오후 5:00       17949304 Start_Here_Win.exe                                                   
Directory: D:etcStart_Here_Mac.app
Mode                 LastWriteTime         Length Name                                                                 
----                 -------------         ------ ----                                                                 
d-----        2017-03-27  오전 11:41                Contents                                                             

Directory: D:etcStart_Here_Mac.appContents
Mode                 LastWriteTime         Length Name                                                                 
----                 -------------         ------ ----                                                                 
d-----        2017-02-07   오후 5:00                Frameworks                                                           
d-----        2017-03-27  오전 11:41                _CodeSignature                                                       
-a----        2017-02-07   오후 5:00            854 Info.plist                                                           
-a----        2017-02-07   오후 5:00              0 PkgInfo                                                              

从这里,到下面。。。

D:etc : Autorun.inf
D:etcStart_Here_Mac.appContents : PkgInfo


原始文本文件的大小为。。。近百万(按行号(
所以我必须用regex来完成这项工作
10年前,我非常擅长处理regex,但我发现自己只处理过单行regex。

我无法制作正确的正则表达式来处理这种多行的情况
请帮帮我。

p.s.和我还被vs代码的regexp功能卡住了。在处理多行regexp时,它看起来更为明智。在vscode.exe上有有用的提示吗?

我能得到的最好的。。。是";2步替换";就像
查找

^Directory:s(.+)$|^.+s+0s+(.+)$

替换

$1_-_$2n

然后,所有目录路径(无论大小是否为零(都将被打印出来,
并且大小为零的文件也将在行之间打印出来
因此,
每个目录(文件夹(名称都将以"结尾_-_$&";,而大小为零的文件名将以"0"开头^_-_&">
然后我可以循环下一个正则表达式来提取"^_-_"*"s结合以上路径来完成作业。

最新更新