У Вас нет полномочий получить доступ к сокету для связи с libvirt демоном. Документация openSUSE о libvirt объясняет, как получить некорневой доступ. Для решения определенной проблемы, должно быть достаточно выполнить virt-менеджера с sudo, т.е. sudo virt-manager
AN AWK
Решение :
$ awk '$0 == "UNIX" {i=1;next};i && i++ <= 2' file
Test 5
Test 6
Объяснение
/ ^ unix $ / {i = 1; следующий}
: Если мы видим UNIX
, мы устанавливаем переменную I = 1
, обработка к следующему вводу.
Если установлено значение I
(означает, что мы видели UNIX
), I && i ++ <= 2
только в следующих двух строках после UNIX
, вызывающий awk
, выполнено действие по умолчанию Печать $ 0
.
Перед просмотром UNIX
, I
I не был определен и начнутся с 3-й строки после UNIX
, I
имел значение больше 2 , что делает выражение I && i ++ <= 2
, оценивалась до false, вызывая awk
ничего не делать.
Это, похоже, хорошо помогает:
sed -n '/UNIX/{n;p;n;p}' /path/to/file
Доказательство концепции:
$ for i in {1..9}; do echo $i; done | sed -n '/4/{n;p;n;p}'
5
6
Решение grep
:
grep -A2 -P '^UNIX$' file
Объяснение: -A
означает: вывести следующие две строки после совпадения
Или awk:
awk '$0=="UNIX"{getline; print; getline; print}' file
Объяснение: Этот оператор ищет UNIX в строке ( $ 0 == "UNIX"
). Если это задано, он получает следующий следующий в свой буфер ( getline
) и печатает буфер ( print
). Это делается дважды.
Или используйте sed
:
sed -n '/^UNIX$/{n;p;n;p}' file
Объяснение: Это поиск для UNIX ( / ^ UNIX $ /
). Если он обнаружен, он выполняет часть в {...}
. n
означает следующий, p
означает печать. Это тоже делается дважды.
grep -A 2 UNIX file.txt
На странице руководства grep этот параметр описывается следующим образом:
-A NUM, --after-context=NUM
Print NUM lines of trailing context after matching lines.
Places a line containing -- between contiguous groups of
matches.
Вы можете использовать ex
:
ex -s +'1,/UNIX/d|%p|q!' file_or_/dev/stdin
где:
1, / UNIX / d
- удаляет текст после совпадения % p
- печатает буфер д!
- выйти без сохранения изменений в файл (используйте wq
для редактирования на месте)