You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

lsusb结合xargs --null命令输出异常的技术问询

问题:lsusb结合xargs命令输出不符合预期的原因

执行的命令与输出

命令1

lsusb | awk '{print $6}' 

输出1:

1d6b:0002
0627:0001
0627:0001
0627:0001
0409:55aa
46f4:0001
1d6b:0003
1d6b:0002
1d6b:0003

命令2

lsusb | awk '{print $6}' | xargs

输出2:

1d6b:0002 0627:0001 0627:0001 0627:0001 0409:55aa 46f4:0001 1d6b:0003 1d6b:0002 1d6b:0003

命令3

lsusb | awk '{print $6}' | xargs --null lsusb -s

输出3:

Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd QEMU Tablet

命令4

lsusb | awk '{print $6}' | xargs --null lsusb -d

输出4:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

预期输出

folkertmeeuw@fedora:~$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd QEMU Tablet
Bus 001 Device 003: ID 0627:0001 Adomax Technology Co., Ltd QEMU Tablet
Bus 001 Device 004: ID 0627:0001 Adomax Technology Co., Ltd QEMU Tablet
Bus 001 Device 005: ID 0409:55aa NEC Corp. Hub
Bus 001 Device 006: ID 46f4:0001 QEMU QEMU USB HARDDRIVE
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

原因分析

1. xargs --null参数使用错误

--null要求输入的每个参数必须以空字符(\0)分隔,但你的awk '{print $6}'输出是每行一个ID,行尾是换行符(\n),不是空字符。这会让xargs把所有ID拼接成一个整体参数传给lsusb,而不是逐个传递,自然无法匹配所有设备。

2. lsusb -s的参数格式不匹配

lsusb -s需要的是总线:设备号格式(比如001:002),但你传递的是厂商ID:产品ID(比如0627:0001),参数类型完全不对,这也是命令3输出异常的核心原因。

3. lsusb -d的参数传递问题

lsusb -d确实支持厂商ID:产品ID格式,但因为xargs把所有ID当成单个参数传递,lsusb -d只会处理第一个有效的ID(1d6b:0002),所以只输出了该ID对应的两个设备,其余ID根本没被处理。


正确实现方式

如果想通过提取的ID列出所有对应设备,直接用以下两种方式即可:

# 方式1:用xargs正确传递每个参数
lsusb | awk '{print "-d "$6}' | xargs lsusb
# 方式2:用awk直接调用system命令
lsusb | awk '{system("lsusb -d "$6)}'

这两种方式都会逐个把每个ID作为独立参数传给lsusb -d,最终输出和预期一致的所有设备。

内容的提问来源于stack exchange,提问作者Folkert Meeuw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 03:40:09