代码之家  ›  专栏  ›  技术社区  ›  Folkert Meeuw

lsusb|awk'{print$6}'|xargs-null lsusb-s有什么问题

  •  -1
  • Folkert Meeuw  · 技术社区  · 1 年前

    命令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 回复  |  直到 1 年前
        1
  •  2
  •   Renaud Pacalet    1 年前

    几个问题:

    • 你使用 xargs --null 而你 awk 脚本用换行符而不是空字符分隔输出。
    • 你使用 lsusb -s 但你通过了 vendor:product 规格,不是 bus:device 规格。
    • 你可能应该使用 -n1 选项 xargs 因为 lsusb-s (或 lsusb -d )只接受一个 bus:devnum (或 供应商:产品 )规格。

    如果你想使用 供应商:产品 规格尝试:

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

    或者,为了避免重复输出:

    lsusb | awk '!seen[$6]++ {print $6}' | xargs -n1 lsusb -d
    

    如果你想使用 总线:设备 规格尝试:

    lsusb | awk '{sub(/:$/, "", $4); print $2 ":" $4}' | xargs -n1 lsusb -s