+ Responder ao Tópico



  1. #1
    d00m
    Visitante

    Padrão Shell Script AWK: mostrar os campos a partir do campo X

    Pessoal,

    existe alguma forma simples de mostrar os campos a partir do campo $3 por exemplo?

    teste teste1 teste2 teste3 teste4

    awk {'print $3 '}

    o que eu quero é que todos os campos depois do $3 sejam mostrados, porem a quantidade de valores que vem após é variável.

    grato por qualquer idéia de como fazer isso

  2. #2
    Malakh_RJ
    Visitante

    Padrão Shell Script AWK: mostrar os campos a partir do campo X

    awk '{ for (var_count = NF; var_count >= 3 ; i++ )
    print $var_count
    }'


    Creio que algo deste tipo vá funcionar ...

    NF é uma variavel interna do awk ( Number of Fields )

  3. #3
    d00m
    Visitante

    Padrão Solução encontrada

    Código :
    awk '{z=""; x = 9; while ( x <= NF ) { z = z" "$x ; x++; } print z}'

    Com essa linha cada campo além do 9 será concatenado numa variável e depois será mostrada a linha completa.

    Muito semelhante a solução acima, porém desta forma a linha será impressa sem quebra para cada campo.

    Grato a todos que se interessaram.

  4. #4
    slice
    Visitante

    Padrão Re: Shell Script AWK: mostrar os campos a partir do campo X

    Citação Postado originalmente por d00m
    Pessoal,

    existe alguma forma simples de mostrar os campos a partir do campo $3 por exemplo?

    teste teste1 teste2 teste3 teste4

    awk {'print $3 '}

    o que eu quero é que todos os campos depois do $3 sejam mostrados, porem a quantidade de valores que vem após é variável.

    grato por qualquer idéia de como fazer isso
    awk {'print $3 to $n'}

    flw!

    Slice

  5. #5
    d00m
    Visitante

    Padrão putz!!

    ops:
    eu imaginava que tinha uma maneira mais simples, mas não encontrei referência em documentação :/

  6. #6
    Malakh_RJ
    Visitante

    Padrão Shell Script AWK: mostrar os campos a partir do campo X

    Eu não diria que o awk e uma ferramenta simples ... mas com certeza, ele é bem eficiente .