Получение данных BusID из lspci и сохранение в переменной

Я пытаюсь получить BusID каждой видеокарты, хранящейся на сервере, и помещаю их в переменную, каждый из которых будет использоваться для ввода в простой скрипт поиска и замены perl. Как мне получить BusID для каждого устройства в списке, например, при запуске "lspci | grep VGA".

Спасибо

1 ответ

Вы можете использовать awk, чтобы разграничить вывод пробелами. Во фрагменте ниже (при условии, что одна строка была возвращена lspci | grep VGA) $1 относится к первому компоненту до пробела. $2 будет VGA, $3-совместимым и т. Д... вот так:

00:0f.0 VGA compatible controller: VMware Inc Abstract SVGA II Adapter

В Bash вы должны извлечь компонент с помощью awk и присвоить его переменной $var, например:

var=$(lspci |grep VGA | awk '{ print $1 }')

echo $var должен вернуться 00:0f.0

Другие вопросы по тегам