Skip to main content
 首页 » 编程设计

android之使用 grep 读取文件中 pattern1 的日志并仅打印包含 pattern1 的行。当在文件中找到 pattern2 时停止搜索

2024年10月25日36zengkefu

使用 grep/sed/awk我要搜索 pattern1直到 pattern2在文件中找到并打印仅包含 pattern1 的结果.

我不想要 pattern1 和 pattern2 范围之间的线条,在这个站点中有很多解决方案。请帮忙。

我尝试了以下但没有结果:

亚行日志 | grep -i '模式1' | grep -m 1 '模式2'

看起来像'|'使它成为 AND condition和我正在寻找的字符串不在同一行。它们在不同的行中。

更新:解决方案在终端中有效,但在脚本中无效。有人可以帮助找出为什么它在脚本中不起作用吗?

请您参考如下方法:

找到pattern2后使用sed停止打印:

adb logcat | sed  '/pattern2/q' | grep -i 'pattern1' 

或者使用 sed 打印 pattern1 并在 pattern2 之后退出:

adb logcat | sed  -n '/pattern1/p;/pattern2/q'