代码之家  ›  专栏  ›  技术社区  ›  Aquarius_Girl

如何从linux命令的输出中提取单个单词?

  •  1
  • Aquarius_Girl  · 技术社区  · 7 年前

    $ lsusb --verbose | grep "THRSL_C_C_V"

    结果:
    iManufacturer 1 THRSL_C_C_V3.07

    我想提取这个词 THRSL_C_C_V3.07 只有。

    我试过 lsusb --verbose | grep -w "THRSL_C_C_V" . 什么也没显示。

    3 回复  |  直到 7 年前
        1
  •  1
  •   Aquarius_Girl    7 年前

    您可以使用 awk 而不是 grep :

    lsusb --verbose | awk '/THRSL_C_C_V/{print $3}' 
    

    这个 AWK 命令搜索包含文本的行 THRSL_C_C_V 通过使用 print $3 我们确保打印匹配行的第三列。

    或者 你可以使用 grep -o 这样地:

    echo 'iManufacturer        1 THRSL_C_C_V3.07' |
    grep -oE 'THRSL_C_C_V[^[:blank:]]*'
    

    THRSL_C_C_V3.07
    
        2
  •  2
  •   David    7 年前

    尝试:

    lsusb --verbose | grep -o "THRSL_C_C_V3\.07"
    

    这个 -o 选项只生成匹配的文本,齿隙将跳过点,允许与请求的文本完全匹配。

        3
  •  1
  •   nandal    7 年前

    使用以下内容:

    $ lsusb --verbose | grep "THRSL_C_C_V" |  awk '{print $NF}'
    

    $ lsusb --verbose | awk '/THRSL_C_C_V/{print $NF}'
    

    这里,$nf将用于输出的最后一个元素