Не могли бы вы попробовать следующее.
awk '/Warning/{exit} 1' Input_file
ИЛИ
echo "$string" | awk '/Warning/{exit} 1'
Объяснение: Просто ищите слово Warning
и как только это произойдет, просто выйдите из программы. Перед этим он напечатает каждую строку.
2-е решение: В случае, если вы хотите, чтобы все строки были перед словом Warning
и хотите оставьте также пустые строки, затем попробуйте выполнить следующее.
awk '/Warning/{exit};NF' Input_file
ИЛИ
echo "$string" | awk '/Warning/{exit};NF'
3-е решение: В случае ОП хочет делать в своем стиле только потом попробовать (протестировано и написано в GNU awk
). нам нужно установить разделитель записей, чтобы заставить ФС работать здесь.
awk -v RS="" -v FS="Warning" '{print $1}' Input_file
ИЛИ
echo "$string" | awk -v RS="" -v FS="Warning" '{print $1}'