Como grep --help content

3

Usar a opção de ajuda (--help) no comando route fornece a seguinte saída:

root@theapprentice:~# route --help 
Usage: route [-nNvee] [-FC] [<AF>]           List kernel routing tables
       route [-v] [-FC] {add|del|flush} ...  Modify routing table for AF.

       route {-h|--help} [<AF>]              Detailed usage syntax for specified AF.
       route {-V|--version}                  Display version/author and exit.

        -v, --verbose            be verbose
        -n, --numeric            don't resolve names
        -e, --extend             display other/more information
        -F, --fib                display Forwarding Information Base (default)
        -C, --cache              display routing cache instead of FIB

  <AF>=Use -4, -6, '-A <af>' or '--<af>'; default: inet
  List of possible address families (which support routing):
    inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25) 
    netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP) 
    x25 (CCITT X.25) 

Eu só quero recuperar a segunda linha com base na palavra "adicionar":

route [-v] [-FC] {add|del|flush} ...  Modify routing table for AF.

Eu não quero sed ou awk.

Eu tentei usar:

route --help |grep add
route --help |grep -o add
route --help |grep -E add
route --help |grep -E -o add
route --help |grep -E -o "add"
route --help |grep -E -o {add|del|flush} 
route --help |grep -w {add|del|flush}  <<<this one did not even work
    
por DRP 08.02.2018 / 21:59

1 resposta

5

A saída de route --help é gravada no erro padrão; não saída padrão. Para grep dessa saída, você precisará redirecioná-la para a saída padrão:

$ route --help 2>&1 | grep -m1 'add'
       route [-v] [-FC] {add|del|flush} ...  Modify routing table for AF.

A sintaxe 2>&1 diz ao shell, "pegue o que está escrito em erro padrão e, em vez disso, grave-o na saída padrão" (tecnicamente, diz "pegue o que está escrito no descritor de arquivo 2 e, em vez disso, escreva-o para onde descritor de arquivo 1 está escrevendo "). -m1 diz a grep para parar de pesquisar após uma partida, para evitar a terceira linha da última.

    
por 08.02.2018 / 22:05

Tags