man lspci
no meu sistema não mostra que a opção -d pode ser usada para mostrar classes, mas você pode obter seus nomes no modo legível por máquina, assim como o grepping. Ou seja:
$ lspci -vmm | grep -B1 -A2 '^Class.*Ethernet'
Slot: 08:00.0
Class: Ethernet controller
Vendor: Intel Corporation
Device: 82574L Gigabit Network Connection
Outra opção seria usar o sysfs diretamente. Ou seja você pode encontrar todos os dispositivos ethernet pela string 'c02' em modalias:
$ find /sys/devices/ -name modalias | xargs grep -l c02
/sys/devices/pci0000:00/0000:00:1c.2/0000:03:00.0/modalias
^^^ PCI port
ou usando o systool:
$ systool -b pci -A modalias | awk '
/modalias.*c02/ {
system("/sbin/lspci -s " dev); }
{ dev = $1; }'
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 11)