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

Re: [assunto paralelo] imprimir linhas que contenham valores repetidos



Opa.. cheguei agora aqui..

hehehe eh facinho brother..
vamos la..

Depende da faixa de valores que vc tem dentro do arquivo.. mas vou dar exemplo do que criei aqui..

[rodrigo@core:/home/rodrigo]$ cat num
A   3   3   4   5
B   2   3   4   5
C   4   4   5   6
D   4   5   6   4
E   2   3   3   2
F   1   3   2   5
G   9   1   7   9


#!/bin/sh
# rescobarrj@gmail.com

arquivo="num"           # NOME DO ARQUIVO
tamanho_final="9"    # VALOR MAXIMO DENTRO DO ARQUIVO

for ((tamanho_inicial = 1; tamanho_inicial < $[tamanho_final + 1]; tamanho_inicial++))
 do
  cat num |awk '/'$tamanho_inicial'.*'$tamanho_inicial'/' >> resultado
 done

cat resultado |sort|uniq

Que finalmente gera..

[rodrigo@core:/home/rodrigo]$ sh s.sh
A   3   3   4   5
C   4   4   5   6
D   4   5   6   4
E   2   3   3   2
G   9   1   7   9

Mas tem um problema aqui.. por exemplo.. se voce tiver valores maiores que 10 já nao vai dar para comparar, porque ele esta comparando caracter por caracter.. ou seja.. voce teria

X   1   3   5   15

Ele acharia que eh igual porque ele irá procurar caracter a caracter e nao cadeia de caracteres..
Posta ai pra gente se vc tem numeros maiores que 9 que tentaremos achar uma outra solucao..

abs!



2008/7/4 Gunther Furtado <gunfurtado@gmail.com>:
Olá,

O tópico recente que tratava do awk me deixou curioso para saber se
ele resolverá um problema para mim, com a ajuda de vocês, é claro:

A   3   3   4   5
B    2   3   4   5
C   4   4   5   6
D   4   5   6   7

Dado um arquivo "entradas" que contenha a informação acima, eu
gostaria de imprimira as linha que contenham qualquer valor repetido,
nem só o "3", nem só o "4". O resultado que espero é:

$ awk '/<alguma mágica>/ { print $0 }' entradas
A   3   3   4   5
C   4   4   5   6

ao invés de:

$ awk '/3.*3/ { print $0 }' entradas
A   3   3   4   5

$ awk '/4.*4/ { print $0 }' entradas
C   4   4   5   6

O arquivo real é um pouco maior (47x15), com uns 700 valores
diferentes e preciso de uma maneira rápida de descobrir se há valores
que se repetem em qualquer de suas linhas.

Gracias,

--
Gunther Furtado
gunfurtado@gmail.com


--
To UNSUBSCRIBE, email to debian-user-portuguese-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: