首页 > 解决方案 > 使用powershell将文本文件中的特定部分行复制到单独的文件中

问题描述

我有一个文件,我想在其中搜索文本,然后我需要找到开始和结束块。然后需要复制到另一个文件。我在同一个文件中有多个语句。

下面是一个例子。

1: Start
2: hello 
3: Hello world 
4: Good Morning 
5: End

我想搜索“早安”,然后我想将开始和结束块之间的文本复制到新文件中。

标签: powershell

解决方案


使用带有环视的正则表达式,您可以找到匹配项
(请参阅使用不同转义=`的正则表达式)\

将您的文本放在文件.\sample.txt中,此代码段:

#requires -Version 3.0
[regex]::match((Get-Content .\Sample.txt -raw),"(?sm)(?<=^Start`r?`n).*?Good Morning.*?(?=`r?`nEnd)").Value
#                                                    \  lookbehind /                   \lookahead/

返回

hello
Hello world
Good Morning

推荐阅读