sed 可以自己完成这一切:
sed -n '$!N;/.*PATTERN.*/q;P;D' infile
Run Code Online (Sandbox Code Playgroud)
很简单:打开静默模式,使用滑动窗口(通过N和D,这样模式空间中总是有两行),q如果遇到 uitPATTERN否则Print 模式空间中的第一行并重新开始循环。
有了gnu sed它甚至更短,因为它可以Q无自动打印,所以你可以跳过静音模式UIT:
sed '$!N;/.*PATTERN.*/Q;P;D' infile
Run Code Online (Sandbox Code Playgroud)