我正在编写一个脚本来确定连接的 USB 设备是否是大容量存储设备,如果是,则存储设备编号。我还希望它能够与多个连接的 USB 记忆棒一起使用。
这是基本思想:
如果lsusb -t | grep Class=Mass
匹配,则将设备 ID 保存为变量。
|__ Port 4: Dev 5, If 0, Class=Mass Storage, Driver=usb-storage, 480M
^^^^^
换句话说:如果“Dev x”后面的单词与我的搜索匹配,我该如何获取它?
我对 Linux、bash 或正则表达式没有那么丰富的经验。如果这很奇怪或不切实际,那么我愿意接受其他建议。
答案1
你可以使用 awk:
lsusb -t | awk -F '[:,]''/Class=Mass/{print $2}'
我们搜索Class=Mass
,分隔符是:
,,
如果找到Class=Mass
,则打印输出的第二列,这将为您留下:
Dev 5