shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Re: Escrever o resultado de um comando no final de ca


From: Julio C. Neves
Subject: Re: [shell-script] Re: Escrever o resultado de um comando no final de cada linha de um arquivo
Date: Fri, 10 Oct 2014 10:22:48 -0300

Com awk, como a proposta do Itamar, provavelmente é muito mais veloz, mas veja uma outra forma legal de montar um one liner:

$ paste -d \* <(seq 10) <(seq 10) | bc
1
4
9
16
25
36
49
64
81
100

É por causa dessa variedade de soluções que sempre digo: "Nunca pergunte se dá para fazer em Shell. A pergunta correta seria, qual é a melhor forma de fazer em Shell"

Durante a LatinoWare, que será na próxima semana em Foz do Iguaçu, lecionarei uma oficina de Expressões Regulares (entrada grátis). Quem for da lista e estiver lá, por favor, se apresente.


Abcs,
Julio
@juliobash
Próximos cursos de Shell
Cidade         Local Período
Rio de Janeiro EDX 10 a 14/11
São Paulo 4Linux 24 a 28/11
Dou treinamento de Shell em qualquer cidade.
Para mais detalhes, me mande um e-mail.


Em 10 de outubro de 2014 06:08, address@hidden [shell-script] <address@hidden> escreveu:
 

As soluções apresentadas, se for para uma saída comum a todas as linhas, são as melhores.

Dependendo do contexto que vc quer, usar uma variável no awk (usar sed tb funcionaria), usar o laço while ou o xargs no script dão uma solução ideal.

Mas se o comando que vc quer depende do resultado de cada linha, pode usar o system dentro do awk.

Vou dar um exemplo usando o seq como o Júlio fez, imprimir cada linha e depois calcular o seu quadrado:

seq 10 | awk '{printf $1 " "; system("echo \""$1"^2\"| bc")}'

Obs: Atente para o uso das aspas duplas escapadas e junto a aspas duplas sem escape

[]'s
Itamar



reply via email to

[Prev in Thread] Current Thread [Next in Thread]