我想使用grep/sed/awk
搜索pattern1
,直到在文件中找到pattern2
,然后打印仅包含pattern1
的结果。
我不希望pattern1和pattern2的范围之间存在界线,因为在此站点中有很多解决方案。请帮忙。
我尝试了以下操作,但没有结果:
亚行logcat | grep -i'pattern1'| 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'