Это легко сделать в awk
:
echo "lost
load
linux
loan
linux" | awk '
/^li/ { found = 1 }
found { print }'
Здесь найдено
- это переменная
с произвольно выбранным, не требующим пояснений именем.
Он устанавливается, когда программа встречает строку ввода
, которая соответствует регулярному выражению.
(По умолчанию переменные имеют значение null,
что функционально эквивалентно 0 или FALSE.)
Таким образом, строки ввода печатаются после сопоставления с шаблоном ^ li
,
и не ранее.
Третья строка ввода (первая строка linux
) печатается
, потому что условная инструкция печати идет после
инструкции, которая ищет шаблон и устанавливает флаг.
Если вы хотите начать печать с четвертой строки
(строка после первая строка linux
),
просто измените порядок из двух заявлений.
Если ни одна строка ввода не соответствует регулярному выражению, флаг никогда не устанавливается и ничего не печатается.
Как я уже сказал, имя переменной флага произвольно;
вы можете использовать что-нибудь более короткое (например, f
), если хотите.
А {print}
- действие по умолчанию, поэтому вы можете не указывать его.
Итак, если вас не волнует ясность, вы можете сократить приведенное выше до
echo "lost
load
linux
loan
linux" | awk '/^li/{f=1}f'
Я решил проблему. Вместо того, чтобы монтировать мой корневой раздел, я просто смонтировал свой раздел /boot/ и создал там файл конфигурации grub.