如何使用 grep 命令获取 mac 上特定设备的信息
how to use grep command to get infromation of particular device on mac
我是 运行 Mac,我想找到 vendor ID
、Product ID
、Serial Number
并且如果可能的话 Mount Volume
随身碟。并以 system_profiler SPUSBDataType
结束,它以段落的形式显示了各种设备的一大堆列表,.. 我只期待获得 pendrive 的一些详细信息(供应商 ID、产品 ID、序列号)。我尝试了 grep,但只有其中一个细节能够得到。我给出的命令是
$ system_profiler SPUSBDataType | grep -i "Vendor ID:"
仅获取特定设备的那些信息的 grep 命令(最好是单行命令)应该是什么。
grep
完全面向行;所以不,它一般不能进行面向段落的操作。但是您可以求助于 Awk,它非常适合此类任务。
无法访问示例输出,这是推测性的,但类似于
system_profiler SPUSBDataType |
awk '/this is the drive you want/ { p=1 }
/vendor ID|Product ID|Serial Number/ && p
/^$/ { p=0 }'
这是假设正则表达式 this is the drive you want
匹配您感兴趣的特定驱动器的第一行输出,并且各个驱动器的输出由空行分隔(正则表达式 ^$
匹配)。现在变量 p
将在这两行之间为真;然后当我们看到最中间的正则表达式匹配时打印。
我是 运行 Mac,我想找到 vendor ID
、Product ID
、Serial Number
并且如果可能的话 Mount Volume
随身碟。并以 system_profiler SPUSBDataType
结束,它以段落的形式显示了各种设备的一大堆列表,.. 我只期待获得 pendrive 的一些详细信息(供应商 ID、产品 ID、序列号)。我尝试了 grep,但只有其中一个细节能够得到。我给出的命令是
$ system_profiler SPUSBDataType | grep -i "Vendor ID:"
仅获取特定设备的那些信息的 grep 命令(最好是单行命令)应该是什么。
grep
完全面向行;所以不,它一般不能进行面向段落的操作。但是您可以求助于 Awk,它非常适合此类任务。
无法访问示例输出,这是推测性的,但类似于
system_profiler SPUSBDataType |
awk '/this is the drive you want/ { p=1 }
/vendor ID|Product ID|Serial Number/ && p
/^$/ { p=0 }'
这是假设正则表达式 this is the drive you want
匹配您感兴趣的特定驱动器的第一行输出,并且各个驱动器的输出由空行分隔(正则表达式 ^$
匹配)。现在变量 p
将在这两行之间为真;然后当我们看到最中间的正则表达式匹配时打印。