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

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

Re: [shell-script] Comparações de valo res entre colunas de linhas difer


From: Darlon Vasata
Subject: Re: [shell-script] Comparações de valo res entre colunas de linhas diferentes
Date: Thu, 21 Jul 2016 09:26:28 -0300

Olá Itamar. Obrigado pela observação.

Mas olha só:

$ cat entrada.txt 
0 abc
2 def
5 ghi
6 jkl
10 mno

Vou tirar o sort do seq:

$ join -a 1 <( seq 0 $ULTIMO  ) <(sort entrada.txt) | sort -n
join: /dev/fd/63:11: is not sorted: 10
0 abc
1
2 def
3
4
5 ghi
6 jkl
7
8
9
10


O join me informa que o 10 não estava ordenado. Até onde entendi, a ordenação que ele precisa é a normal, e não a numérica. Desta forma, o 10 deve ser antes do 2.

Na saída, o resultado ficou errado. Deveria aparecer 10 mno no final, e não só 10. Se eu colocar sort -n para entrada.txt, ele diz que os dois parâmetros não estão ordenados, e a saída continua errada. Veja :

$ join -a 1 <( seq 0 $ULTIMO   ) <(sort -n entrada.txt) | sort -n
join: /dev/fd/62:5: is not sorted: 10 mno
join: /dev/fd/63:11: is not sorted: 10
0 abc
1
2 def
3
4
5 ghi
6 jkl
7
8
9
10



Por isso, coloquei o sort depois do seq.


$ join -a 1 <( seq 0 $ULTIMO | sort  ) <(sort entrada.txt) | sort -n
0 abc
1
2 def
3
4
5 ghi
6 jkl
7
8
9
10 mno


[ ]

Darlon


On 21 de jul de 2016, at 09:11, address@hidden [shell-script] <address@hidden> wrote:

Darlon me permita duas críticas: 

Nesse trecho:
$ join -a 1 <( seq 0 $ULTIMO | sort ) <( sort entrada.txt ) | sort -n

sort para uma saída do seq? Isso não precisa!

se o arquivo.txt já estava ordenado como comentou no primeiro e-mail o sort nele é desnecessário, mas se quer fazer isso como garantia o melhor teria sido usar o opção -n nele, e não após o join ligado através de pipe

ou seja:
$ join -a 1 <( seq 0 $ULTIMO ) <( sort -n entrada.txt )

É só uma observação.

[]'s
Itamar



reply via email to

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