Página 1 de 3 123 ÚltimoÚltimo
+ Responder ao Tópico



  1. fala galera, bl'z??

    galera, seguinte:

    tenhamos a seguinte situação hipotética:

    tenho um arquivo com os seguintes dados:

    123
    123
    123
    1234
    1234
    1234
    12345
    12345
    12345

    e preciso filtrar este arquivo para retirar as linhas repetidas.

    o problema é q eu não lembro qual comando faz isso.
    :toim: :toim: :toim: :toim: :toim: :toim: :toim:

    se alguém puder refrescar minha memória agradeço :good:

    valew

  2. caramba galera...

    ninguém lembra como faz isso???




  3. #3
    Avenger
    depende da onde vc ker fazer isso? é em bash? perl? python?

    se for em bash e os dados repetidos forem sempre seguidos mesmo, você pode fazer algo assim:
    Código :
    #!/bin/bash
    arquivo="$(cat arquivo)"
    lines=$(echo "${arquivo}" | wc -l)
    currline=;oldline=;
    for ((counter=1; ${counter} -le $lines; counter=$((${counter} + 1)))); do
     currline="$(echo "${arquivo}" | head -n ${counter} | tail -n 1)"
     if [ "${currline}" != "${oldline}" ]; then
      oldline="${currline}"
      echo "${currline}"
      # ou: echo "${currline}" >> arquivo_filtrado
     fi
    done

    Depurando esse código, a idéia dele é a mesma. Acho que se vc souber qquer lingua de programação é fácil portar isso prá c, perl, php, etc.

    Espero que ajude.

  4. oo cara...

    valew pela ajuda...

    o script seria em bash mesmo

    ainda estou me aperfeiçoando em bash script, e muitas vezes preciso de ajuda...

    entendi o q o script fará, mas ele está dando erro na linha 5, erro de sintaxe...

    verei se consigo corrigir o erro, mas qualquer coisa eu pedirei ajuda novamente..

    valew



  5. #5
    Avenger
    debuguei:

    Código :
    #!/bin/bash 
    arquivo="$(cat arquivo)" 
    lines=$(echo "${arquivo}" | wc -l) 
    currline=;oldline=; 
    for ((counter=1; counter <= $lines; counter=$((${counter} + 1)))); do 
     currline="$(echo "${arquivo}" | head -n ${counter} | tail -n 1)" 
     if [ "${currline}" != "${oldline}" ]; then 
      oldline="${currline}" 
      echo "${currline}" 
      # ou: echo "${currline}" >> arquivo_filtrado 
     fi 
    done

    (plo menos aki funfow agora)






Tópicos Similares

  1. criar banco de dados
    Por ediguedes no fórum Servidores de Rede
    Respostas: 3
    Último Post: 28-11-2002, 19:40
  2. Filtros de e-mail
    Por hlopes no fórum Servidores de Rede
    Respostas: 2
    Último Post: 11-10-2002, 05:47
  3. Linux com linha privada de dados.
    Por ncferreira10 no fórum Servidores de Rede
    Respostas: 8
    Último Post: 10-09-2002, 19:26
  4. Me ajudem!! URGENTE!!!! Filtros de Impressão!!!!
    Por no fórum Servidores de Rede
    Respostas: 1
    Último Post: 16-08-2002, 16:41
  5. Filtros de Impressão!!!
    Por no fórum Servidores de Rede
    Respostas: 1
    Último Post: 07-08-2002, 11:24

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L