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