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

Android 使用grep读取文件中pattern1的日志,并仅打印包含pattern1的行。在文件中找到pattern2时停止搜索,android,python,awk,sed,grep,Android,Python,Awk,Sed,Grep,使用grep/sed/awk我想搜索pattern1,直到在文件中找到pattern2,并打印只包含pattern1的结果 我不想在pattern1和pattern2的范围内出现线,因为在这个站点中有很多解决方案。请帮忙 我尝试了以下方法,但没有结果: adb logcat | grep-i“模式1”| grep-m 1“模式2” 看起来像是“|”使其成为和条件以及我要查找的字符串不在同一行中。他们排在不同的队伍里 更新:解决方案在终端中工作,但不在脚本中工作。有人能帮忙找出为什么它不能在脚本中

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

我不想在pattern1和pattern2的范围内出现线,因为在这个站点中有很多解决方案。请帮忙

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

adb logcat | grep-i“模式1”| grep-m 1“模式2”

看起来像是
“|”
使其成为
和条件
以及我要查找的字符串不在同一行中。他们排在不同的队伍里


更新:解决方案在终端中工作,但不在脚本中工作。有人能帮忙找出为什么它不能在脚本中工作吗

找到图案2后,使用sed停止打印:

adb logcat | sed  '/pattern2/q' | grep -i 'pattern1'
或者使用sed打印模式1并在模式2后退出:

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

只需调用sed即可完成以下操作:

adb logcat | sed -n '/pattern2/q; /pattern1/p'
或者,也可以通过调用
awk

adb logcat | awk '/pattern2/{exit} /pattern1/'

跟进问题。给定的解决方案在终端中运行良好,但当我在Python脚本中使用它时,在找到pattern2时,它似乎不会退出。请发布一个新问题,解释您如何尝试在Python中使用命令行,您期望它做什么,以及实际发生了什么。您可以在新问题中添加此问题的链接。后续问题。给定的awk解决方案在终端中运行良好,但当我在Python脚本中使用它时,它似乎不会在找到pattern2时退出。