Возможно, простое awk
может работать:
awk '/latest/{ print $3 }' file
См. это онлайн awk
демо . Он находит строку с latest
и печатает содержимое поля 3.
Однако, следуя исходной логике, вы можете использовать только sed
для извлечения этого фрагмента строки после latest
:
sed -n '/[[:space:]]latest[[:space:]]/s/.*latest[[:space:]]*\([^[:space:]]*\).*/\1/p' file
См. онлайн демо
Детали
/[[:space:]]latest[[:space:]]/
- находит строку с пробелами + latest
+ пробел
s/.*latest[[:space:]]*\([^[:space:]]*\).*/\1/p
- находит и заменяет содержимое группы 1:
.*latest
- любые 0+ символов до последнего вхождения latest
[[:space:]]*
- 0 или более пробелов
\([^[:space:]]*\)
- Группа 1: любые 0 или более непробельных символов
.*
- любые 0+ символов до конца строки
Опция -n
подавляет вывод строки, а p
показывает только результат замещения.