Что, если Вы использовали после контекстного переключения к grep (-A
) и указанный a 1
получить первую строку после соответствия?
$ grep -E -A 1 "name=|age=|class=|marks=" student.txt
Файл примера.
$ cat student.txt
name=
1st line after name
2nd line after name
age=
1st line after age
2nd line after age
class=
1st line after class
2nd line after class
marks=
1st line after marks
2nd line after marks
Затем, когда Вы выполняете вышеупомянутую команду:
$ grep -E -A 1 "name=|age=|class=|marks=" student.txt
name=
1st line after name
--
age=
1st line after age
--
class=
1st line after class
--
marks=
1st line after marks
Поскольку @RahulPatil предложил использовать конструкцию для awk
:
'/string1/||/string2/||...'
Что-то вроде этого сделало бы то, что Вы ищете.
$ awk '
/name=/||/age=/||/class=/||/marks=/{nr[NR]; nr[NR+1]}; NR in nr
' student.txt
$ awk '
/name=/||/age=/||/class=/||/marks=/{nr[NR]; nr[NR+1]}; NR in nr
' student.txt
name=
1st line after name
age=
1st line after age
class=
1st line after class
marks=
1st line after marks
Для правильной работы требуется поддержка в дистрибутиве (я ввел поддержку UEFI в ALT Linux); можно обойти эту проблему, используя символические ссылки и обновляя драйверы файловой системы, или, конечно же, скопируйте какой-нибудь пользовательский скрипт в /etc/grub.d ...
FWIW самая развитая инфраструктура обработки двоичных файлов PE-COFF, которую я видел до сих пор, была создана в PLD Linux.
Если вы используете пакеты ядра .deb
(, то есть либо используете стандартные ядра вашего дистрибутива, либо компилируете свой собственный Путь Debian ), тогда процесс установки пакета ядра запустит все сценарии, расположенные в соответствующем подразделе -каталоги /etc/kernel/
. В частности, каталог /etc/kernel/postinst.d/
был бы хорошим местом для сценария, который помещает новое ядро в пределах досягаемости rEFInd.
Также обратите внимание, что достаточно свежие версии rEFInd могут автоматически -обнаруживать ядра Linux и использовать файл refind_linux.conf
для определения наборов параметров загрузки ядра общим способом :rEFInd по умолчанию будет предлагать самое последнее ядро обнаруженный файл и использовать с ним первый набор параметров загрузки. Нажав F2 (, я думаю ), вы можете получить подменю -со старыми версиями ядра и другими наборами параметров загрузки. Использование этой функции может позволить вам обойтись без более простого сценария.