【发布时间】:2020-06-12 10:43:58
【问题描述】:
简而言之:我正在寻找与以下 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
【问题讨论】:
-
除了搜索一个单词并在输出中加倍空格之外,我看不到它的作用。
-
要在 powershell 中使用 bash 命令,请使用
bash -c "command" -
好点,@js2010:我已经修复了
awk命令,并且我还恢复了 OP 的原始问题描述,希望能澄清一些事情。 -
@NekoMusume 请注意,标准的
awk实用程序(在类Unix 平台上)与bash无关,您可以直接从PowerShell 调用awk- 中的命令问题按原样工作。 -
注意:
RS=''(将记录分隔符RS设置为 null / 空字符串)是 POSIX 强制要求的,因此 portableawk成语通过一个或多个空行将输入分成段落;相比之下,RS='\n\n'- 即 多字符 记录分隔符 - 仅受 一些awk实现支持,例如 GNUawk。
标签: powershell awk