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

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

Re: [shell-script] Unindo todas as linhas numa só


From: Breno Moiana
Subject: Re: [shell-script] Unindo todas as linhas numa só
Date: Mon, 4 May 2009 13:55:12 -0300

Opa! bastante resposta!

Nada como ter várias opções no cardápio. Vamos lá..


Estou usando HP-UX, então uns 30% das soluções mais simples da lista
não se aplicam aqui. Vou por partes.

Vamos chamar o meu comando de 'geralista.sh'.

Esse era meu comando:
geralista.sh | awk '/minhabusca/ {print $3}'

1. Fazendo assim, funciona (nao entendi exatamente por que o echo está
comendo os newlines - alguem pode esclarecer?):
echo $(geralista.sh | awk '/minhabusca/ {print $3}')

2. Assim FUNCIONA no HPUX:
geralista.sh | awk '/minhabusca/ {print $3}' | tr '\n' ';'

3. Assim NAO FUNCIONA no HP-UX:
geralista.sh | awk '/minhabusca/ {print $3}' | paste -sd\;

o 'paste -s' nao pega no pipe aqui nem com reza braba, mas se eu botar
o output num arquivo, funciona:

$ paste -s -d\; lista
um;dois;tres;quatro

$ cat lista | paste -s -d\;
paste: Usage: paste [-s] [-d List ] File1 ...


4. Essa solução nao funcionou no HP-UX, só tenho 'vi', nao 'vim',
talvez seja este o motivo.

vi arquivo <<EOF
:%s/^M/;/g
:wq
EOF



Obrigado a todos pelas contribuições, se alguém souber os porquês da
saída 1 funcionar e da 3 nao funcionar, tenho certeza de que vai nos
dar algum insight util. Estou assumindo que a 4 nao roda aqui por
causa do 'vi'.

Abraco!

Breno.


2009/5/4 Roberto Alves <address@hidden>:
>
>
> Eu quis fazer algo parecido com isso no AIX e nada funcionou mas no Linux
> sim.
>
> Tente esse também:
>
> vi arquivo <<EOF
> :%s/^M/;/g
> :wq
> EOF
>
> abraço,
> Roberto Alves
>
> 2009/5/4 Bruno Coimbra <address@hidden>:
>
>>
>>
>> $ paste -sd\; # também funfa
>>
>> --
>> Bruno Coimbra aka sceadugenga
>> address@hidden
>>
>> Existem 11 tipos de pessoas no mundo:
>> As que entendem binário,
>> as que acham que entendem
>> e as que não entendem.
>>
>> On Monday 04 May 2009 10:21:17 Flavio Junior wrote:
>>> $ tr '\n' ';' ?
>>>
>>> --
>>>
>>> Flávio do Carmo Júnior aka waKKu
>>>
>>> 2009/5/4 Breno Moiana <address@hidden>:
>>> > Bom dia, pessoal.
>>> >
>>> > Esse não é beeem um problema, visto que está funcionando, mas estou
>>> > querendo deixar mais bonito, sabe como é :)
>>> > Eu tenho um output que me dá uma lista de tamanho variado. Podem ser
>>> > duas, tres ou vinte linhas, nao importa:
>>> >
>>> > Input:
>>> > um
>>> > dois
>>> > tres
>>> >
>>> > Output:
>>> > um; dois; tres
>>> >
>>> > Eu gostaria de fazer um paste -all , mas nao encontrei aqui. Por
>>> > enquanto estou fazendo uma contagem e construindo um "paste -d\; - - -
>>> > - " on demand, mas está feio, cadê a elegância? Sugestoes?
>>> >
>>> > Obrigado!
>>> >
>>> > Breno.
>>> > --
>>
>> [As partes desta mensagem que não continham texto foram removidas]
>>
>>
>
> 



-- 
Breno.
--


reply via email to

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