2009/5/4 Flavio Junior <bil...@gmail.com>:
> [r...@dartagnan ~]# cat txt
> 02 06 04 08 01
> 03 06 02 05 09
> [r...@dartagnan ~]# while IFS=$'\n' read -r LINHA; do (tr ' ' '\n'
> <<<"$LINHA" | sort -n) | tr '\n' ' '; echo ; done <txt
> 01 02 04 06 08
> 02 03 05 06 09
> [r...@dartagnan ~]#
>
>
> --
>
> Flávio do Carmo Júnior aka waKKu
>
> 2009/5/4 Fabiano Oliveira e Souza <souz...@yahoo.com.br>:
>>
>>
>> É a 3 opção, ordenar os números dentra de cada linha, sendo que mantendo no
>> linha que estão.
>>
>> Ex.:
>>
>> o arq.txt tem o sgeuinte conteudo
>> 02 06 04 08 01
>> 03 06 02 05 09
>>
>> então eu quero ondenar para qque cada linha fique com os numeros em ordem:
>>
>> 01 02 04 06 08
>> 02 03 05 06 09
>>
>> Atenciosamente,
>> Fabiano de O. e Souza
>> Yahoo!: souzafo
>> MSN: fabiano_oliveira_so...@hotmail.com
>> ICQ: 44012727
>>
>> ________________________________
>> De: Andrea VB <andreavb1...@gmail.com>
>> Para: shell-script@yahoogrupos.com.br
>> Enviadas: Segunda-feira, 4 de Maio de 2009 11:52:54
>> Assunto: Re: [shell-script] Re: Ordenação de números
>>
>> 2009/5/4 Fabiano Oliveira e Souza <souz...@yahoo. com.br>:
>>> Desta forma ele só ordena a 1ª coluna de cada linha.
>>
>> Mas você respondeu que era isso que queria...
>>
>> Andrea VB, às 10h46:
>>>>> Ou quer ordenar as linhas (por exemplo, a que começa com "25 07"
>>>>> ficaria antes da que começa com "25 10", mas depois da "22 11", e por
>>>>> aí vai?) ?
>>
>> Fabiano, às 10h53:
>>>> Seria a segunda opção, em ordenar os numeros de cada linha e depois
>>>> escrever em um arquivo, consegui até separar com o
>>>> sed, porém não estou conseguindo encontrar a lógica para escrever essa
>>>> ordenação em um outro arquivo.
>>
>> Então não era a segunda opção (a que eu exemplifiquei e disse que a
>> linha "25 07" ficaria antes da "25 10" e assim por diante), certo?
>>
>> O que exatamente você tá procurando?
>> 1) Ordenar todos os números do arquivo (primeira opção de meu e-mail)
>> 2) Ordenar as linhas como elas estão (a segunda opção)
>> 3) Ordenar os números dentro de cada linha, mas mantendo as linhas na
>> posição em que estão (respostas do Cléoson e do Bruno)
>> 4) Alguma coisa diferente que nós ainda não entendemos :)
>>
>> Att,
>>
>> --
>> Andrea VB
>> Please, don't CC me when replying to me on the lists, and use BCC when
>> sending mass e-mails.


Não entendi direito a estratégia de alterar o IFS. Dá pra simplificar
seu one-liner assim:

while read; do tr ' ' '\n' <<< "$REPLY" | sort -n | paste -sd" "; done < txt

-- 
Fabiano Caixeta Duarte
Especialista em Redes de Computadores
Linux User #195299
Ribeirão Preto - SP

Responder a