代码之家  ›  专栏  ›  技术社区  ›  Poornima Hegde

如何从命令输出中获取第一行最后一个字的值

  •  1
  • Poornima Hegde  · 技术社区  · 8 年前

    我想从中检索版本号 rsense -version 命令。 输出:

     rsense version 0.5.18 
     Usage: rsense <start|stop|restart>
    

    我试过的 : 如果我将输出保存在一个文本文件中,请说output.txt并执行此命令 awk 'NR == 1 {print $3}' /Users/poornima/Desktop/output.txt . 我得到了要求的结果,即 0.5.18 .

    但是 rsense -version | awk 'NR == 1 {print $3}' 不工作。输出:

        rsense version 0.5.18
        Usage: rsense <start|stop|restart>
    
    2 回复  |  直到 8 年前
        1
  •  2
  •   cdarke    8 年前

    rsense stderr stdout

    rsense -version 2>&1 | awk 'NR == 1 {print $3}'
    

    2>&1

    stdin < 0<

    > 1>

    2>

    & man dup2

    |

    bash awk

    a=($(rsense -version 2>&1))
    echo ${a[2]}        # arrays count from zero, awk counts from 1
    

    echo ${a[-1]}         # assumes a recent version of bash
    

    awk '{print $NF}'
    

    $NF

        2
  •  0
  •   axiac    8 年前

    cut

    rsense --version | head -n 1 | cut -f3 -d' '
    

    head -n 1
    cut -f3 -d' ' 3 f ' ' d

    sed

    rsense --version | sed -n "1s/^rsense version //p"
    


    "1s/^rsense version //p"

    • 1
    • s/^rsense version // s ^rsense version /
      ^ rsense version version
    • p

    -n

    bash

    a=($(rsense --version | head -n 1))
    echo ${a[2]}
    

    $() rsense --version | head -n 1 a=(rsense version 0.5.18)
    0 2
    ${a[2]} a

    推荐文章