Как извлечь строку перед (или после) регулярным выражением, но не строку содержащую регулярное выражение

bash

Извлечение строки перед регулярным выражением


$ cat input.txt
Lehe
Alex
Themo
Demo
Saik
$ awk '/Alex/ {print x};{x=$0}' input.txt
Lehe
$ sed -n '/Alex/{g;1!p;};h' input.txt
Lehe
$ S=`grep -n Alex input.txt | awk -F : '{print $1}'`; S=`expr $S - 1`; sed -n "$S p" input.txt
Lehe

Извлечение строки после регулярного выражения


$ sed -n '/Lehe/{n;p;}' input.txt
Alex
$ awk '/Lehe/{getline;print}' input.txt
Alex
$ S=`grep -n Lehe input.txt | awk -F : '{print $1}'`; S=`expr $S + 1`; sed -n "$S p" input.txt 
Alex