Вот решение с использованием sed:
sed -n '20,$d;/apple/h;19{x;p}'
-n - подавить печать строк
20,$d - для любой строки от 20 до конца файла ($), удалить (d) его
/apple/h - для любой строки, которая соответствует регулярному выражению /apple/ , скопируйте ее в « пространство для хранения » (h)
19{x;p} - в строке 19 поменяйте местами шаблон и удерживайте пробелы (x) и напечатайте пространство шаблона (p)
Обратите внимание, что необходимо использовать строку 19 для окончательной печати, потому что все строки после этого удаляются. В противном случае вы можете использовать адрес « последней строки » - $ .
В этом тесте я добавил apple в строку 23.
$ sed -n '20,$d;/apple/h;19{x;p}' < file
linenum 8.apple2