+ Responder ao Tópico



  1. #1

    Padrão Como posso fazer isso?

    E ai pessoal, blz?
    Estava precisando fazer um shell script que pegasse um texto e só mostrasse pra mim só os valores duplicados. Exemplo:
    Existe um texto com os seguintes valores:
    teste
    teste
    abc
    linux
    etc.

    quando eu usasse o script eu queria q ele me mostrasse só os duplicados, mostrando esse resultado:

    teste

    Qualquer ajuda ta valendo. Falou....

  2. #2

    Padrão Como posso fazer isso?

    se é que entendi bem...

    cat arquivo texto | sort | uniq > novo_arquivo_texto

    (acho que não entendi foi nada.. vc quer aquilo que está duplicado, eu "removo" as duplicatas). É que como não dá para apagar o post (só edita-lo..

    bem.. desculpe o mau-jeito, mano.

    :twisted:



  3. #3
    Mameli
    Visitante

    Padrão Como posso fazer isso?

    Bem, acredito que o script abaixo vai resolver seu problema. Ao menos foi o que eu entendi quanto a sua necessidade.

    Crie um shell com o nome duplicados e utilize o código abaixo.

    Qualquer dúvida, mande uma mensagem.

    []s

    Mameli

    #!/bin/bash
    # Verifica Registros Duplicados
    # by Mameli
    if [ $# -lt 1 ]; then
    clear
    echo Sintaxe correta: duplicados.sh \"arquivo\"
    echo Sendo o nome do arquivo com extensao e sem usar as aspas
    echo .
    exit
    fi

    if [ ! -f $1 ]; then
    clear
    echo Arquivo $1 nao encontrado
    echo .
    exit
    fi

    cat $1 | sort | uniq > duplicados.sh.tmp

    while read Linha
    do
    if [ `grep $Linha $1 | wc -l` -gt 1 ]; then
    echo $Linha
    fi
    done <duplicados.sh.tmp
    rm -f duplicados.sh.tmp