Как парсить вывод «lspci»/«lsusb»? - коротко
Парсинг вывода команд «lspci» и «lsusb» требует анализа текстового формата, который эти команды предоставляют. Для этого можно использовать различные инструменты и языки программирования, такие как Python, Perl или awk. В Python, например, можно использовать регулярные выражения для извлечения необходимых данных из строки вывода.
Для парсинга вывода «lspci» и «lsusb» можно использовать регулярные выражения. Например, в Python, можно использовать библиотеку re для поиска и извлечения нужных данных.
Как парсить вывод «lspci»/«lsusb»? - развернуто
Парсинг выводов команд «lspci» и «lsusb» представляет собой процесс извлечения и обработки информации о подключенных устройствах в системе. Эти команды предоставляют детальные сведения о PCI и USB устройствах соответственно, что может быть полезно для системного администрирования, диагностики и автоматизации.
Команда «lspci» выводит информацию о всех PCI устройствах, подключенных к системе. Вывод команды включает в себя идентификаторы устройств, классы устройств, производителей и модели. Пример вывода команды «lspci»:
00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06)
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05)
Для парсинга этого вывода можно использовать различные инструменты и языки программирования. Например, в Python можно использовать модуль «re» для работы с регулярными выражениями. Пример кода на Python для парсинга вывода «lspci»:
import re
def parse_lspci(output):
devices = []
pattern = re.compile(r'(\d+:\d+\.\d+)\s+(.+):\s+(.+)\s+\((.+)\)')
for line in output.splitlines():
match = pattern.match(line)
if match:
devices.append({
'bus_id': match.group(1),
'class': match.group(2),
'description': match.group(3),
'vendor': match.group(4)
})
return devices
output = """
00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06)
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05)
"""
devices = parse_lspci(output)
for device in devices:
print(device)
Команда «lsusb» выводит информацию о всех USB устройствах, подключенных к системе. Вывод команды включает в себя идентификаторы устройств, производителей, модели и серийные номера. Пример вывода команды «lsusb»:
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Для парсинга вывода «lsusb» также можно использовать регулярные выражения. Пример кода на Python для парсинга вывода «lsusb»:
import re
def parse_lsusb(output):
devices = []
pattern = re.compile(r'Bus (\d+)\s+Device (\d+): ID (\S+):(\S+)\s+(.+)')
for line in output.splitlines():
match = pattern.match(line)
if match:
devices.append({
'bus': match.group(1),
'device': match.group(2),
'vendor_id': match.group(3),
'product_id': match.group(4),
'description': match.group(5)
})
return devices
output = """
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
"""
devices = parse_lsusb(output)
for device in devices:
print(device)
Таким образом, парсинг вывода команд «lspci» и «lsusb» позволяет извлекать и обрабатывать информацию о подключенных устройствах, что может быть полезно для различных задач, связанных с системным администрированием и автоматизацией.