Cómo eliminar rápidamente las filas de datos duplicados en los archivos de Linux

  

En las operaciones del sistema Linux, si hay demasiados datos en el archivo, es muy difícil eliminar las filas de datos duplicados. Si la búsqueda es inconveniente, ¿hay alguna forma de eliminar archivos rápidamente? ¿Duplicar filas de datos? La siguiente pequeña serie le presentará cómo eliminar líneas de datos duplicadas, echemos un vistazo.

a, eliminar datos duplicados filas adyacentes

código es el siguiente:

$ data1.txt gato |  Uniq

Salida:

beijing

wuhan

beijing

wuhan

Segundo, elimine todos los datos duplicados Línea

El código es el siguiente:

$ cat data1.txt |  Ordenar |  Uniq

Nota:

Solo el comando uniq, simplemente elimine las líneas de datos duplicadas adyacentes.

Si ordena primero, todas las filas de datos duplicados se convertirán en filas de datos adyacentes, y si es uniq, se eliminarán todas las filas de datos duplicados.

Salida:

beijing

wuhan

Adjunto: data1.txt

El código es el siguiente:

[raíz @syy ~] # cat data1.txt

beijing

beijing

wuhan

wuhan

wuhan

Beijing

beijing

beijing

wuhan

wuhan

Nota: La dirección IP en el registro del filtro es útil.

Eliminando una fila de campos duplicados en un archivo de big data en Linux

Un programa de recopilación de datos escrito recientemente generó un archivo que contiene más de 10 millones de filas de datos. Los datos constan de 4 campos. De acuerdo con los requisitos, debe eliminar las filas duplicadas del segundo campo. Si lo encuentra, no puede encontrar la herramienta correcta en Linux. Las herramientas de procesamiento de flujos como sed /gawk solo pueden procesar una línea por línea y no pueden encontrar las filas con campos repetidos. Parece que tengo que crear un programa en Python, y de repente pensar en usar mysql, así que me moví al grande:

1. Use mysqlimport --local dbname data.txt para importar datos a la tabla, el nombre de la tabla y el nombre del archivo Consistente

2. Ejecute la siguiente instrucción sql (requiere que un campo único sea uniqfield)

El código es el siguiente:

use dbname;

alter table tablename add rowid Int auto_increment no nulo;

crea la tabla t selecciona min (rowid) como rowid del grupo nombre de tabla por uniqfield;

crea la tabla t2 selecciona tablename. * De tablename, t donde tablename.rowid = t .rowid; "/p" "p" soltar tabla nombre de tabla;

cambiar el nombre de tabla t2 a nombre de tabla;

Lo anterior es la forma de eliminar filas de datos duplicadas en Linux, este artículo presenta una variedad de En el caso de eliminar la línea de datos duplicados del archivo, espero poder ayudarle.

Copyright © Conocimiento de Windows All Rights Reserved