Grep 包含特定关键字的文本的整个段落

2023-12-14

我的目标是提取包含特定关键字的文本段落。不仅仅是包含关键字的行,而是整个段落。我的文本文件的规则是每个段落都以某种模式开头(例如 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 

我的目标是提取包含“关键字”一词的这些段落。例如:

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 

我可以使用例如grep 关键字和 -A、-B 或 -C 选项可获取关键字所在行之前和/或之后的恒定行数,但这似乎还不够,因为文本块的开头和结尾取决于分隔符“Pa0”和“\n”。

任何建议grep或其他工具(例如 awk、sed、perl)会有所帮助。


很简单awk:

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

解释:

通常 awk 是以每行为基础进行操作的,因为记录分隔符的默认值RS is \n(一个新行)。通过改变RS到连续的两个新行(空行),我们可以轻松地在段落的基础上进行操作。

/keyword/是一个条件,一个正则表达式。由于条件满足后没有任何动作awk如果它包含,将简单地打印未更改的记录(段落)keyword.

设置输出记录分隔符ORS to \n\n将用空行分隔输出的段落,就像在输入中一样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Grep 包含特定关键字的文本的整个段落 的相关文章

  • 使用 Powershell 按列拆分 csv 文件

    我是 powershell 的新手 但这看起来是完成此任务的最佳工具 有一个如下所示的 csv 文件 Date mary1 mary2 maryr3 mary4 9 01 2011 1 00 1 39 3 43 3 29 1 83 9 01
  • 使用 AWK 或 SED 以及以下标签以逗号分隔

    使用 AWK 或 SED 以及下面使用的标签以逗号分隔 BEGIN AccountID BEGIN CallerID BEGIN Billed Account Attributes 1111111 1111111 1111111 END B
  • 创建带小数秒的时间戳

    awk可以使用 strftime 函数生成时间戳 例如 awk BEGIN print strftime Y m d H M S 2019 03 26 08 50 42 但我需要一个带有小数秒的时间戳 最好是纳秒 gnu date可以用 N
  • 我如何在 ruby​​ 中执行范围正则表达式,例如 awk /start/,/stop/

    我想做一个 AWK 风格的范围正则表达式 如下所示 awk hoststatus file 在 AWK 中 这将打印文件中两个模式之间的所有行 hoststatus host name myhost modified attributes
  • 如何比较 ASCII 值

    我想将字母的 ASCII 值存储到变量中 我该怎么做 例如 r ASCII variable 82 main character character read from a file variable r ascii in this cas
  • 单选按钮文本对齐问题

    我正在 asp net 中工作 并且有单选按钮列表 我想根据需要对齐它们的文本 这是我目前拥有的 我想让它们像这样 EDIT 其次 当我单击 Ages From 单选按钮时 我会显示一个 div 如下所示 当我单击返回 All Ages 单
  • 当我通过 shell 脚本创建 .txt 文件时,为什么文件名末尾出现问号? [复制]

    这个问题在这里已经有答案了 我正在编写一个 shell 脚本 我应该在其中创建 1 个文本文件 当我这样做时 文件名末尾出现一个问号 是什么原因 我正在 bash 脚本中尝试以下方法 1 grep ERROR a1 gt text txt
  • grep 模式单引号和双引号

    封装和封装有什么区别grep单引号和双引号中的模式 grep abc file txt and grep abc file txt 我之所以这么问 是因为我无法自己测试所有可能的情况 而且我不想陷入错误的情况 如果你有特殊字符 我会看到不同
  • 如何在bash中仅提取两个字符串之间多行的第一个实例?

    我的文件是 abc 123 xyz abc 675 xyz 我想提取 abc 123 xyz 123 可以是任何东西 重点是我想要第一次出现 我尝试使用这个 sed n abc xyz p filename 但这给了我所有的例子 我怎样才能
  • 如何声明文本字段只能包含整数?

    在 swift 中 我试图创建一个文本字段 该文本字段将允许启用按钮 但仅当文本字段包含整数时 我怎样才能做到这一点 两件事情 指定键盘类型以仅显示数字键盘 所以 设置keyboardType to numberPad 然而 这还不足以阻止
  • “grep -q”的意义是什么

    我正在阅读 grep 手册页 并遇到了 q 选项 它告诉 grep 不向标准输出写入任何内容 如果发现任何匹配 即使检测到错误 也立即以零状态退出 我不明白为什么这可能是理想或有用的行为 在一个程序中 其原因似乎是从标准输入读取 处理 写入
  • 如何在html中设置按钮的文本大小

    您好 我想在我的网站上有一个按钮 并且我想调整按钮上的文本大小 我该怎么做呢 我的代码如下
  • 如何让“grep -zoP”单独显示每个匹配项?

    我有一个此表格的文件 X this is the first match blabla X this is the second match and here we have some fluff 我想提取 X 之后和相同标记之间出现的所有
  • 在 ActionScript 3 中在形状上绘制文本

    有没有办法仅使用 ActionScript 在 DisplayObject 或 Shape 中绘制文本 我在网上找到的唯一方法是创建 TextField 但我无法将 TF 添加到 DisplayObject 或 Shape Edit 解决了
  • PHP:STR 替换为链接

    我有这个 PHP 聊天框 如果我在聊天框中键入链接 它不会将其显示为链接 我如何使用 STR 替换来执行此操作 它应该响应诸如 http http com nl www www 之类的内容 我的其他 STR 替换行如下所示 bericht
  • Unix 命令列出包含字符串但*不*包含另一个字符串的文件

    如何递归查看包含一个字符串且不包含另一个字符串的文件列表 另外 我的意思是评估文件的文本 而不是文件名 结论 根据评论 我最终使用了 find name html exec grep lR base maps xargs grep L ba
  • git 匹配多个单词的标签

    我们可以得到最后一个 git 标签 它以一个单词 例如 TEST 开头 如下所示 git describe tag dirty match TEST 我想知道如何获得最后一个以 word1 开头的标签orword2 例如测试OR跑步 我尝试
  • grep 两个分隔符之间的子字符串

    我有很多bash使用的脚本perl内的表达式grep为了提取两个分隔符之间的子字符串 例子 echo BeginMiddleEnd grep oP lt Begin End 问题是 当我将这些脚本移植到运行的平台时busybox 融合的 g
  • 如何测试 UITextField 是否为零?

    我正在尝试制作我的应用程序的一部分 如果该人不更改我的 UITextField 中的空白文本 那么他 她将无法继续下一步 基本上 我想测试 UITextField 的 nil 文本 我已经使用了 if text 方法 但是如果用户单击 UI
  • 仅使用 Git grep 的文件名

    我只想查看文本中包含特定单词的不同文件 current directory git grep word 显示文件中具有匹配单词的每一行 所以我尝试了这个 current directory git grep word files with

随机推荐

  • CocoaPods 未安装或未处于有效状态

    Launching lib main dart on iPhone 11 Pro Max in debug mode Warning CocoaPods is installed but broken Skipping pod instal
  • 后台任务中的 Toast 通知响应

    我正在编写一个可以在后台任务中显示 toast 通知的应用程序 我使用BackgroundTaskBuilder 在通知中 我使用两个按钮 它们应该执行两个不同的功能 但我无法获得通知的响应 我在互联网上读到我应该为此启动另一个后台任务 但
  • 如何在服务中使用 kernel.terminate 事件

    我做了一个运行繁重任务的服务 该服务在控制器中调用 为了避免页面加载时间过长 我想返回 HTTP 响应并在之后运行繁重的任务 我读过我们可以使用 kernel terminate 事件来做到这一点 但我不明白如何使用它 目前我尝试在 Ker
  • @Autowired 不适用于球衣和弹簧

    当我当时运行测试时 Autowired 正在工作 但是当我运行 Web 应用程序并尝试当时获取数据时 它会抛出空指针异常 这是我的控制器 在此 BuyerRepo 中始终为 null import com retail exception
  • 在 Ruby on Rails 3 中使用 Twitter Bootstrap 图标作为链接的最佳方式?

    在 Rails 3 中使用 Twitter Bootstrap 提供的图标作为链接的最佳方式是什么 目前 我像粘贴的代码片段一样使用它 但当我使用平板电脑查看网页时 该图标不显示 我确信有更好的方法来使用 Twitter Bootstrap
  • 如何将 env 文件与 GitHub Actions 结合使用?

    我有多个环境 dev qa prod 并且我正在使用 env 文件来存储机密等 现在我要切换到 GitHub Actions 我想使用我的 env 文件并将它们声明到envgithub actions yml 的部分 但从我到目前为止所看到
  • 如何确定编解码器/容器组合是否与 FFmpeg 兼容?

    我正在考虑重新混合一些保存音频和视频的容器 以便提取最好的第一个音频流 并将其存储在一个新的容器中 例如only音频流存在 FFmpeg 的输出上下文是这样创建的 AVFormatContext output context NULL av
  • 如何将 var 添加到文本 javascript

    我有这个代码 ajax url http localhost record FlashWavRecorder master jjj r type HEAD error function sd html img src 5 0 gif suc
  • Keras 序列模型中使用哪种损失函数

    我使用的是 Keras 序列模型 预测输出的形状为 1 5 5 个特征 我有一个准确度指标定义如下 对于 N 个预测 模型的准确性将是预测样本的百分比 使得 对于每个预测及其各自的真实标签 所有特征的差异不超过 10 例如 如果y i 1
  • 从嵌套字典中删除字段的优雅方法

    我必须从字典中删除一些字段 这些字段的键在列表中 所以我写了这个函数 def delete keys from dict dict del lst keys Delete the keys present in lst keys from
  • SonarQube - 如何查看前 15 条以上的违规行为?

    我正在使用 SonarQube 5 3 我们的代码库中有 241k 个问题 但是 当我过滤掉 主要 问题并单击 规则 框查看违反了哪些规则时 我只能看到前 15 个 有没有办法可以找出所有这些问题 我已经编辑了这个问题以添加屏幕截图 请注意
  • 替换字符串中第 N 个位置的字符

    我想替换字符串中第 N 个位置的字符 这是我的查询 SELECT code FROM tablecodes 结果是 3 行 AXGETYTRTFYZUFYZFFFDIZEG GFYZUFYZFAXFCDIZAX ZUFYZGEFYFAXFF
  • 在 CakePHP 中添加好友功能

    我需要在我的应用程序中添加一个简单的朋友功能 通过一些研究 我需要一个链接回用户表的连接表 像这样的 我已经有一个用户表 用户 友谊 用户 谁能提供更多详细信息吗 友谊表应包含以下列 id Integer user from the use
  • AngularFire Loop 非规范化数据

    我有类别和子类别 数据的结构就像blog shows categories JF1RmYehtF3IoGN9xHG categoryId title Example subcategories JF1RmYehtF3IoGN239GJ su
  • Python 3 中如何区分实例方法、类方法、静态方法或函数?

    我想区分Python 3中的方法和函数 此外 如果是方法 我想获取相应的类 我目前的解决方案是这样的 import types import inspect def function or method f if inspect ismet
  • java.lang.NullPointerException:在可扩展列表视图中显示数据库中的记录

    正如问题所示 我需要显示数据库中的记录 每个孩子的记录不同 即 子1 记录1个数据 child 2 记录2数据 so等等 我想出了以下显示代码 package com example moolah import android app Li
  • knockoutjs 依赖选择框绑定子选择框的问题

    与knockout js购物车示例类似 我有一个包裹列表 价格取决于位置 我无法将依赖选择框 位置选项 与视图绑定
  • 为什么Spark的重新分区没有将数据平衡到分区中?

    gt gt gt rdd sc parallelize range 10 2 gt gt gt rdd glom collect 0 1 2 3 4 5 6 7 8 9 gt gt gt rdd repartition 3 glom col
  • ImageView 位图比例尺寸

    我有一个比我放入的 ImageView 更大的位图 我将 ScaleType 设置为 center inside 如何获得缩小图像的尺寸 好的 我可能应该更清楚 在将缩放位图绘制到屏幕上之前 我需要缩放位图的高度和宽度 以便我可以在正确的位
  • Grep 包含特定关键字的文本的整个段落

    我的目标是提取包含特定关键字的文本段落 不仅仅是包含关键字的行 而是整个段落 我的文本文件的规则是每个段落都以某种模式开头 例如 Pa0 该模式仅在段落开头在整个文本中使用 每个段落都以换行符结尾 例如 假设我有以下文本 Pa0 This