Debian: Как получить текущее загруженное имя пакета ядра?

Я не уверен, что понимаю правильно, так как Ваше описание проблемы не соответствует Вашему желаемому выводу, но если различные записи в Вашем файле разделяются последовательными новыми строками, можно использовать режим абзаца и Perl:

 $ perl -000ne 'print if /keyword/' file 
 Data engine-1
 Data engine-1
 Data
 Data
 Data engine-1 **keyword-1**
 Data engine-1

 Data engine-3
 Data engine-3 
 Data
 Data
 Data engine-3 **keyword-1**
 Data engine-3

Волшебство является этими-000, это включает режим абзаца Perl, который заставляет его разделить файлы на абзацы. Другими словами, записи разделяются двумя или больше последовательными \n символами. Мы затем говорим этому печатать, если текущая запись содержит ключевое слово.

Вы могли также выполнить в этом gawk:

$ gawk 'BEGIN{RS=ORS="\n\n"}/keyword/' file

RS входной разделитель записей, который мы устанавливаем на 2 последовательных новых строки для корректного парсинга файла. ORS выходной разделитель записей, который также должен быть установлен распечатать новую строку между каждой печатной записью.

2
29.04.2015, 01:18
1 ответ

Используйте это:

$ dpkg --get-selections | grep -o "^linux-image-$(uname -r)"
linux-image-3.13.0-32-generic

или

$ dpkg -l | grep -o "linux-image-$(uname -r)"
linux-image-3.13.0-32-generic

EDIT: Если у вас несколько версий одного и того же релиза ядра, запустите следующий скрипт bash:

#!/bin/bash
rel="$(uname -r)"
ver="$(uname -v)"
current="${rel%-*}.${ver:1:2}"
echo "$(dpkg -l | grep -Po "linux-image-${rel}(?=\s+${current})")"
3
27.01.2020, 22:05

Теги

Похожие вопросы