gpt4 book ai didi

powershell - 如何提取包含给定关键字的选择段落?

转载 作者:行者123 更新时间:2023-12-03 01:26:36 27 4
gpt4 key购买 nike

简而言之:我正在寻找与以下awk命令等效的PowerShell:

awk '/keyword/' RS='' ORS='\n\n' input.txt

我的目标是从包含特定关键字的文本中提取选定的段落-不仅仅是包含关键字的行,而是整个段落。

我的文本文件上施加的规则是,每个段落都以某个特定模式(例如 Pa0)开头,该模式仅在该段落的开头用于整个文本。每个段落以一个额外的换行符结尾。

例如,假设我有以下文本:

Pa0 
This is the first paragraph bla bla bla
This is another line in the same paragraph bla bla
This is a third line bla bla

Pa0
This is the second paragraph bla bla bla
Second line bla bla My keyword is here!
bla bla bla
bla

Pa0
Hey, third paragraph bla bla bla!
bla bla

Pa0
keyword keyword
keyword
Another line! bla

我的目标是提取包含单词 keyword的段落。例如:

Pa0
This is the second paragraph bla bla bla
Second line bla bla My keyword is here!
bla bla bla
bla

Pa0
keyword keyword
keyword
Another line! bla

最佳答案

Mathias R. Jessen's helpful answer提供更简洁,更快速的替代方法。

(Get-Content -Raw input.txt) -split '\r?\n\r?\n' -match 'keyword'

注意:Regex \r?\n以与平台无关的方式匹配单个换行符-它同时匹配CRLF和仅LF换行符。如果只有LF换行符,则 \n\n将起作用。
要将匹配限制为段落的开头,请使用 '^keyword'
  • 这只会按预期方式将匹配的段落作为多行字符串的数组返回,例如,您可以使用 ForEach-Object cmdlet逐个处理这些段落。
  • 请注意,如果最后匹配的段落也恰好是文件中整体的最后一个段落,则它可能带有尾随换行符。


  • 文档链接:
  • Get-Content cmdlet。
  • -splitstring splitting operator
  • -matchregular-expression matching operator
  • 关于powershell - 如何提取包含给定关键字的选择段落?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62328564/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com