Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何匹配Bash中最后两个字符串之间的所有行?_Linux_Bash_Unix - Fatal编程技术网

Linux 如何匹配Bash中最后两个字符串之间的所有行?

Linux 如何匹配Bash中最后两个字符串之间的所有行?,linux,bash,unix,Linux,Bash,Unix,我有一个日志文件,其中有一些重复的关键字,如“开始”和“结束”,中间有几行(包括空格)。我想对这两个标记之间的所有行进行grep处理——但仅限于最后一个递归。例如: Start 1 2 End Start A B C Start Three End 使用awk时,结果应仅为“三”: awk '/Start/{s=""; p=1; next} p && /End/{p=0} p{s=s $0 ORS} END{printf "%s", s}' file Thre

我有一个日志文件,其中有一些重复的关键字,如“开始”和“结束”,中间有几行(包括空格)。我想对这两个标记之间的所有行进行grep处理——但仅限于最后一个递归。例如:

Start 
1

2 
End 
Start 
A B 
C 
Start 
Three 
End
使用awk时,结果应仅为“三”:

awk '/Start/{s=""; p=1; next} p && /End/{p=0} p{s=s $0 ORS} END{printf "%s", s}' file
Three
或者使用
tac
awk

tac file | awk '/End/{p=1; next} p && /Start/{exit} p' | tac
Three

我宁愿在
sed
awk
中这样做。这可以接受吗?可以,无论是
sed
还是
awk
都可以。如果有多行,您也需要
tac
结果