[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Comando para eliminar duplicatas não sequenciais
From: |
Fabiano Caixeta Duarte |
Subject: |
Re: [shell-script] Comando para eliminar duplicatas não sequenciais |
Date: |
Thu, 12 Nov 2009 14:13:54 -0200 |
2009/11/12 Marcio Gil <address@hidden>:
>> -----Original Message-----
>> From: Fabiano Caixeta Duarte
>>
>> Uma idéia a ser melhorada:
>>
>> TMP=$(mktemp /tmp/tmp.XXXXXX)
>> sort arquivo | uniq > $TMP
>> while [ $(wc -l < $TMP) -gt 0 ]; do
>> linha=$(grep -m1 -f b arquivo)
>
> O que faz esse b? Imagino que você queria dizer:
>
> linha=$(grep -m1 -f $TMP arquivo)
>
> Mas mesmo assim não funcionou:
>
> [marcio@localhost Cupom]$ grep "Bematech_FI_" !(*~*) | grep -v
> "DLLPROC\|DLLDEF\|LOAD_PROC" | sed
> 's/.*\(Bematech_FI_[A-Za-z0-9_]*\).*/\1/' | ~/tmp/teste.sh -
> "/tmp/tmp.jT3120"
>
>
> sed: -e expression #1, char 0: no previous regular expression
>
> sed: -e expression #1, char 0: no previous regular expression
>
> sed: -e expression #1, char 0: no previous regular expression
> ...
>
>> echo $linha
>> sed -i "/$linha/d" $TMP
>> done
>> rm $TMP
>>
>> Se ficar alguma dúvida, eu explico :)
>>
>
> Muito obrigado pelas idéias :-)
Sim. Na pressa eu acabei não substituindo o 'b' por $TMP.
Mas você disse que não funciona. Aqui eu estei com o que você passou
como modelo de seu arquivo.
Eu não sei o resultado disto:
> [marcio@localhost Cupom]$ grep "Bematech_FI_" !(*~*) | grep -v
> "DLLPROC\|DLLDEF\|LOAD_PROC" | sed
> 's/.*\(Bematech_FI_[A-Za-z0-9_]*\).*/\1/' | ~/tmp/teste.sh -
> "/tmp/tmp.jT3120"
Também não sei o conteúdo de teste.sh, que deve ser o fruto de uma
alteração do código que enviei. Meu código pede um arquivo chamado
"arquivo". Isto pode ser facilmente ajustado para receber dados da
stdin.
Caso queira enviar um exemplo real dos seus dados, podemos ajustar o
código. Entretanto, a idéia do Aurélio e do Thobias lembrada pelo
Tiago é de longe melhor do que a minha.
Abraços!
--
Fabiano Caixeta Duarte
Especialista em Redes de Computadores
Linux User #195299
Ribeirão Preto - SP
Re: [shell-script] Comando para eliminar duplicatas não sequenciais, Tiago Peczenyj, 2009/11/12
Re: Comando para eliminar duplicatas não sequenciais, Sérgio, 2009/11/13