python - 在连续两行中打印字符串匹配之前的行

标签 python linux bash shell

我使用的是 Linux,我需要打印该行以及与文件中相同字符串匹配的连续 2 行。

这是我的例子: 当两辆车以相同的速度行驶时,我想显示汽车的速度+时间

我的文件:

时间:10:15

car1 - 速度 120

car2 - 速度 120

时间:10:17

car16 - 速度 89

car3 - 速度 102

时间:10:26

car7 - 速度 56

car15 - 速度 56

时间:10:36

car9 - 速度 115

car4 - 速度 100

<小时/>

因此,我想要的结果是:

时间:10:15

car1 - 速度 120

car2 - 速度 120

时间:10:26

car7 - 速度 56

car15 - 速度 56

<小时/>

非常感谢任何帮助。

提前谢谢

最佳答案

使用sed非常简单 - 我们可以使用N(将下一行输入附加到模式空间)来读取三行,并使用反向引用\1来测试速度是否相等:

sed -n '/time/N;/speed/N;/speed \(.*\)\n.*speed \1$/p'

关于python - 在连续两行中打印字符串匹配之前的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59819821/

相关文章:

python - 计算 python/pandas 中组的平均值

python - 使用 python 验证用户输入

linux - 将数据从一台服务器迁移到另一台

c++ - 什么是关于国际化和本地化的良好介绍和教程?

bash - 匹配前后的 Grep 字符?

python - 当连续值的数量低于特定阈值时,在数据框中查找连续值的索引

python - 在django中将utf-8字符输出为json

linux - 如何为busybox中的每个小程序构建ELF文件?

java - 应用程序内 Java 命令行

bash - 是否有很好的在线免费(最好是 PDF)bash 教程?