Cómo encontrar datos duplicados en un archivo de texto de Linux con uniq

Cómo encontrar datos duplicados en un archivo de texto de Linux con uniq

¿Alguna vez te has encontrado con archivos de texto con líneas repetidas y palabras duplicadas? Tal vez trabaje regularmente con la salida de comandos y desee filtrarlos por cadenas distintas. Cuando se trata de archivos de texto y la eliminación de datos redundantes en Linux, el comando uniq es su mejor opción.





En este artículo, analizaremos el comando uniq en profundidad, junto con una guía detallada sobre cómo usar el comando para eliminar líneas duplicadas de un archivo de texto.





¿Qué es el comando uniq?

El comando uniq en Linux se usa para mostrar líneas idénticas en un archivo de texto. Este comando puede resultar útil si desea eliminar palabras o cadenas duplicadas de un archivo de texto. Dado que el comando uniq coincide con las líneas adyacentes para encontrar copias redundantes, solo funciona con archivos de texto ordenados.





Afortunadamente, puede canalizar el clasificar comando con uniq para organizar el archivo de texto de una manera que sea compatible con el comando. Además de mostrar líneas repetidas, el comando uniq también puede contar la aparición de líneas duplicadas en un archivo de texto.

Cómo usar el comando uniq

Hay varias opciones y banderas que puede usar con uniq. Algunos de ellos son básicos y realizan operaciones simples como imprimir líneas repetidas, mientras que otros son para usuarios avanzados que trabajan frecuentemente con archivos de texto en Linux.



Sintaxis básica

La sintaxis básica del comando uniq es:

|_+_|

...dónde opción es la bandera utilizada para invocar métodos específicos del comando, aporte es el archivo de texto para procesar, y producción es la ruta del archivo que almacenará la salida.





los producción El argumento es opcional y se puede omitir. Si un usuario no especifica el archivo de entrada, uniq toma datos de la salida estándar como entrada. Esto permite a un usuario canalizar uniq con otros comandos de Linux .

Archivo de texto de ejemplo

Usaremos el archivo de texto duplicate.txt como entrada para el comando.





|_+_|

Tenga en cuenta que ya hemos ordenado este archivo de texto utilizando el clasificar mando. Si está trabajando con algún otro archivo de texto, puede ordenarlo usando el siguiente comando:

|_+_|

Eliminar líneas duplicadas

El uso más básico de uniq es eliminar cadenas repetidas de la entrada e imprimir una salida única.

|_+_|

Producción:

Observe que el sistema no muestra la segunda aparición de la línea Este es un archivo de texto . Además, el comando antes mencionado solo imprime las líneas únicas en el archivo y no afecta el contenido del archivo de texto original.

Contar líneas repetidas

Para generar el número de líneas repetidas en un archivo de texto, use el -c bandera con el comando predeterminado.

|_+_|

Producción:

El sistema muestra el recuento de cada línea que existe en el archivo de texto. Puedes ver que la linea Este es un archivo de texto ocurre dos veces en el archivo. De forma predeterminada, el comando uniq distingue entre mayúsculas y minúsculas.

Para imprimir solo líneas duplicadas del archivo de texto, use el -D bandera. los -D representa Duplicar .

|_+_|

El sistema mostrará la salida de la siguiente manera.

|_+_|

Omitir campos mientras busca duplicados

Si desea omitir una cierta cantidad de campos mientras hace coincidir las cadenas, puede usar el -F bandera con el comando. los -F representa Campo .

Considere el siguiente archivo de texto fields.txt .

|_+_|

Para omitir el primer campo:

|_+_|

Producción:

|_+_|

El comando mencionado anteriormente omitió el primer campo (las direcciones IP y los nombres del sistema operativo) y coincidió con la segunda palabra (TCP y FS). Luego, mostró la primera aparición de cada coincidencia como resultado.

Ignorar caracteres al comparar

Al igual que para omitir campos, también puede omitir caracteres. los -s La bandera le permite especificar el número de caracteres que se deben omitir al hacer coincidir las líneas duplicadas. Esta función ayuda cuando los datos con los que está trabajando están en forma de lista de la siguiente manera:

cómo cambiar los márgenes en google docs
|_+_|

Para ignorar los dos primeros caracteres (las numeraciones de la lista) en el archivo list.txt :

|_+_|

Producción:

En el resultado anterior, los dos primeros caracteres se ignoraron y el resto de ellos se emparejaron para obtener líneas únicas.

Verifique el primer número N de caracteres para ver si hay duplicados

los -en La bandera le permite verificar solo un número fijo de caracteres en busca de duplicados. Por ejemplo:

|_+_|

El comando antes mencionado solo coincidirá con los dos primeros caracteres e imprimirá líneas únicas, si las hay.

Producción:

Eliminar la sensibilidad a mayúsculas y minúsculas

Como se mencionó anteriormente, uniq distingue entre mayúsculas y minúsculas al hacer coincidir líneas en un archivo. Para ignorar las mayúsculas y minúsculas del carácter, utilice el -I opción con el comando.

|_+_|

Verá el siguiente resultado.

Observe en la salida anterior, uniq no mostró las líneas COGE ESTO y ESTE ES UN ARCHIVO DE TEXTO .

Enviar salida a un archivo

Para enviar la salida del comando uniq a un archivo, puede usar el Redirección de salida ( > ) carácter de la siguiente manera:

|_+_|

Al enviar una salida a un archivo de texto, el sistema no muestra la salida del comando. Puede comprobar el contenido del nuevo archivo utilizando el gato mando.

|_+_|

También puede utilizar otras formas de enviar la salida de la línea de comando a un archivo en Linux .

Analizar datos duplicados con uniq

La mayor parte del tiempo, mientras administra servidores Linux, estará trabajando en la terminal o editando archivos de texto. Por lo tanto, saber cómo eliminar copias redundantes de líneas en un archivo de texto puede ser una gran ventaja para su conjunto de habilidades de Linux.

Trabajar con archivos de texto puede resultar frustrante si no sabe cómo filtrar y ordenar el texto en un archivo. Para facilitar su trabajo, Linux tiene varios comandos de edición de texto, como sed y awk que le permiten trabajar de manera eficiente con archivos de texto y salidas de línea de comandos.

Cuota Cuota Pío Correo electrónico Estos 10 ejemplos de Sed lo convertirán en un usuario avanzado de Linux

¿Quiere convertirse en un usuario avanzado de Linux? Familiarizarse con sed ayudará. Aprenda de estos 10 ejemplos de sed.

Leer siguiente
Temas relacionados
  • Linux
  • Linux
Sobre el Autor Sharma profundo(79 Artículos publicados)

Deepesh es el editor junior para Linux en MUO. Escribe guías informativas sobre Linux, con el objetivo de proporcionar una experiencia maravillosa a todos los recién llegados. No estoy seguro de películas, pero si quieres hablar de tecnología, él es tu chico. En su tiempo libre, puedes encontrarlo leyendo libros, escuchando diferentes géneros musicales o tocando su guitarra.

Más de Deepesh Sharma

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse