Puedo encontrar muchas maneras de hacer esto, AWK, SED, UNIQ, pero ninguno de ellos están trabajando en mi archivo.

Quiero borrar las líneas duplicadas. Aquí es un ejemplo de parte de mi archivo:

KTBX
KFSO
KCLK
KTBX
KFSO
KCLK
PAJZ
PAJZ

NOTA: he tenido que agregar manualmente los saltos de línea cuando he cortado y pegado desde el archivo…por alguna razón se estaba poniendo todas las variables en una sola línea. Me hace pensar que mi 44,000 línea del archivo de texto en realidad sólo tiene «línea de 1»? Hay una forma de modificar para que yo lo pueda eliminar paquetes de actualización de dell?

  • Si el archivo no tiene más de una línea, que va a ser difícil para nosotros para recomendar un método para eliminar las líneas duplicadas.
  • Si yo VI mi archivo, tiene 44,000 líneas.
  • donnot saber si usted se preocupa por el orden, si no. simplemente ‘ordenar su.archivo | uniq » debe hacerlo.
  • Que funcionó…gracias! No sé por qué los otros piensan que no hay líneas.
  • intenta awk '!a[$0]++' file ?
  • sí, traté de que uno. He escrito que, a continuación, > newfile , y el newfile era igual edad, con entradas duplicadas.
  • Usted no necesita sort file | uniq cuando sort -u file funciona igual de bien, pero es evidente que tiene algunos problemas con su formato de archivo de entrada así que, ¿cómo puede usted SABER que lo que estás haciendo escupir de su comando es lo que quieres? ¿Qué wc -l file decir? ¿head -10 file | cat -v?

InformationsquelleAutor Corepuncher | 2013-09-26

2 Comentarios

  1. 4

    Se puede ver todos los no-caracteres de imprenta con este comando:

    od -c oldfile

    Si todos sus expedientes están en una línea, puede utilizar sed para reemplazar un espacio en blanco (espacio, tabulador, nueva línea) con un salto de línea:

    sed -e 's/\s\+/\n/g' oldfile > oldfile.1

    Una vez que se dispone de varias líneas, este awk one-liner:

    awk '!x[$0]++' oldfile.1 > newfile

    mi outfile:

    KTBX
    KFSO
    KCLK
    PAJZ
    • Lo siento por la resurrección. Curiosamente, esto no funciona para mí en OSX cuando el archivo de origen contenida windows finales de línea ( \r\n ). awk fue incapaz de reconocer los duplicados. Conversión a través de dos2unix hizo el trabajo.
  2. 1

    Perl One-Liner:

    perl -nle ‘menos($hash{$_}++){print $_}’ archivo

    • De niza. Vi una técnica similar para eliminar duplicados en una matriz.

Dejar respuesta

Please enter your comment!
Please enter your name here