Como determinar a classe de dispositivo USB e armazenar o número do dispositivo?

4

Estou fazendo um script para determinar se um dispositivo USB conectado é um dispositivo de armazenamento em massa e, em caso afirmativo, armazene o número do dispositivo. Eu também gostaria que funcionasse com vários pen drives USB conectados.

Aqui está a ideia básica:

Se lsusb -t | grep Class=Mass corresponder, salve o ID do dispositivo como uma variável.

   |__ Port 4: Dev 5, If 0, Class=Mass Storage, Driver=usb-storage, 480M
               ^^^^^

Em outras palavras: Como eu pego "Dev x", se as palavras depois de corresponderem à minha pesquisa?

Eu não sou tão experiente com Linux, bash ou regex. Se isso é estranho ou impraticável, então estou aberto a outras sugestões.

    
por Coffeeman 19.02.2018 / 10:26

1 resposta

5

Você pode usar o awk:

lsusb -t | awk -F '[:,]''/Class=Mass/{print $2}'

Procuramos por Class=Mass , o delimitador é : e , se encontrarmos Class=Mass , depois imprimimos a coluna dois da saída, o que o deixará com:

Dev 5
    
por 19.02.2018 / 10:40