Como formatar a saída do comando jot

Como formatar a saída do comando jot

Eu tenho um comando muito simples jot -r 4 0 255que basicamente gera 4 números aleatórios no intervalo de 0 a 255.

> jot -r 4 0 255
66
14
244
155

Como posso formatar a saída para algo assim 66.14.244.155:?

Responder1

Use um caractere de ponto final como uma string separadora entre os resultados do jotcomando. Abra o terminal e digite:

jot -s "." 4 0 255

Dos resultados de man jot:

-scorda
        Imprimir dados separados por string. Normalmente, as novas linhas separam os dados.

Em alguns outros casos, um caractere de espaço seria uma boa string separadora.

Responder2

Fiz um arquivo de teste, tcontendo saída semelhante

$ cat t
66
14
244
155

Existem várias maneiras diferentes de reformatar a saída, canalizadas a partir de qualquer comando ou catcomo estes exemplos:

  • use bash readassim

    $ cat t | while read i; do echo -n "$i."; done; echo
    66.14.244.155.
    

    para ler cada entrada e ecoá-la com um ponto final e sem nova linha (adicionando um eco simples no final para obter uma nova linha final).

  • trtraduza cada nova linha em um ponto, novamente com um ponto final e sem nova linha

    $ cat t | tr '\n' '.'
    66.14.244.155.
    
  • o mesmo, mas com um tempo muito curtoawk

    $ cat t | tr '\n' '.' | awk 'ORS="."'
    66.14.244.155.
    
  • tr(ou awk) novamente, mas corrija o ponto final em uma nova linha

    $ cat t | tr '\n' '.' | sed 's/.$/\n/'
    66.14.244.155
    
  • tudo sedisso éaparentemente mais rápido e menos complexosem ponto final e uma nova linha

    $ cat t | sed -e ':a; N; $!ba; s/\n/./g'
    66.14.244.155
    
  • pastepode usar suas opções serial e delimiter, sem ponto final e uma nova linha

    $ cat t | paste -sd "." -
    66.14.244.155
    

Fonte

informação relacionada