GNU/Linux >> Tutoriales Linux >  >> Linux

El tutorial de comandos Uniq con ejemplos para principiantes

Si trabaja principalmente en la línea de comandos y maneja muchos archivos de texto todos los días, debe tener en cuenta Uniq dominio.

El comando Uniq lo ayuda a encontrar fácilmente líneas repetidas y duplicadas de un archivo. Uniq no es solo para encontrar duplicados, sino también para eliminar los duplicados, mostrar el número de ocurrencias de las líneas duplicadas, mostrar solo las líneas repetidas y mostrar solo las líneas únicas, etc.

Tenga en cuenta que el comando 'uniq' no detectará líneas repetidas a menos que sean adyacentes. Por lo tanto, es posible que deba ordenarlos primero o combinar el comando ordenar con uniq para obtener los resultados. Permítame mostrarle algunos ejemplos.

Dado que el comando uniq es parte del paquete GNU coreutils, viene preinstalado en la mayoría de las distribuciones de Linux. Entonces, no nos molestemos con la instalación y veamos algunos ejemplos prácticos de comandos Uniq.

Ejemplos de comandos Uniq

Primero, creemos un archivo con algunas líneas duplicadas.

$ vi ostechnix.txt
welcome to ostechnix
welcome to ostechnix
Linus is the creator of Linux.
Linux is secure by default
Linus is the creator of Linux.
Top 500 super computers are powered by Linux

Como puede ver en el archivo anterior, tenemos pocas líneas repetidas (la primera, segunda, tercera y quinta líneas están duplicadas).

1. Eliminar líneas duplicadas consecutivas en un archivo usando el comando Uniq

Si usa el comando 'uniq' sin ningún argumento, eliminará todas las líneas duplicadas consecutivas y mostrará solo las líneas únicas.

$ uniq ostechnix.txt

Salida de muestra:

Como puede ver, el comando uniq eliminó todas las líneas duplicadas consecutivas en el archivo dado. Es posible que también haya notado que la salida anterior todavía tiene duplicados en la segunda y cuarta líneas. Es porque el comando uniq solo omitirá las líneas repetidas solo si son adyacentes. Por supuesto, también podemos eliminar los duplicados no consecutivos. Mira el segundo ejemplo a continuación.

2. Eliminar todas las líneas duplicadas

$ sort ostechnix.txt | uniq

Salida de muestra:

¿Ver? No hay duplicados ni líneas repetidas. En otras palabras, el comando anterior mostrará cada línea una vez desde el archivo ostechnix.txt .

En el ejemplo anterior, usamos el comando sort junto con uniq porque, como ya mencioné, uniq no encontrará las líneas duplicadas/repetidas a menos que sean adyacentes.

3. Mostrar solo líneas únicas de un archivo

Para mostrar solo las líneas únicas de un archivo, el comando sería:

$ sort ostechnix.txt | uniq -u

Salida de muestra:

Linux is secure by default
Top 500 super computers are powered by Linux

Como puede ver, solo tenemos dos líneas únicas en el archivo dado.

4. Mostrar solo líneas duplicadas

Del mismo modo, también podemos mostrar líneas duplicadas de un archivo como el siguiente.

$ sort ostechnix.txt | uniq -d

Salida de muestra:

Linus is the creator of Linux.
welcome to ostechnix

Estas dos son las líneas repetidas/duplicadas en el archivo ostechnix.txt. Tenga en cuenta que -d (d minúscula) solo imprimirá líneas duplicadas , uno para cada grupo . Para imprimir todas las líneas duplicadas , usa -D (d mayúscula) como a continuación.

$ sort ostechnix.txt | uniq -D

Vea la diferencia entre ambas banderas en la siguiente captura de pantalla.

5. Mostrar el número de ocurrencias de cada línea en un archivo

Por alguna razón, es posible que desee verificar cuántas veces se repite una línea en el archivo dado. Para hacerlo, use -c marca como a continuación.

$ sort ostechnix.txt | uniq -c

Salida de muestra:

 2 Linus is the creator of Linux.
 1 Linux is secure by default
 1 Top 500 super computers are powered by Linux
 2 welcome to ostechnix

También podemos mostrar el número de ocurrencias de cada línea junto con esa línea, ordenados por el comando más frecuente usando:

$ sort ostechnix.txt | uniq -c | sort -nr

Salida de muestra:

 2 welcome to ostechnix
 2 Linus is the creator of Linux.
 1 Top 500 super computers are powered by Linux
 1 Linux is secure by default

6. Limite la comparación a los caracteres 'N'

El comando Uniq nos permite limitar la comparación a un número particular de caracteres de líneas en un archivo usando -w bandera. Por ejemplo, limitemos la comparación a los primeros 4 caracteres de las líneas en un archivo y mostremos las líneas repetidas como se muestra a continuación.

$ uniq -d -w 4 ostechnix.txt

7. Evite la comparación con los primeros caracteres 'N'

Al igual que limitar la comparación a N caracteres de líneas en un archivo, también podemos evitar comparar los primeros N caracteres usando -s bandera.

El siguiente comando evitará la comparación con los primeros 4 caracteres de las líneas de un archivo:

$ uniq -d -s 4 ostechnix.txt

Para evitar comparar los primeros N campos en lugar de los caracteres, use el indicador '-f' en el comando anterior.

Para más detalles, consulte la sección de ayuda;

$ uniq --help

y páginas man.

$ man uniq

Lea también:

  • Tutorial de comando de plegado con ejemplos para principiantes

Linux
  1. Linux expand Command Tutorial para principiantes (con ejemplos)

  2. Tutorial de comando de factor Linux para principiantes (con ejemplos)

  3. Tutorial de comando yes de Linux para principiantes (con ejemplos)

  4. Tutorial del comando nproc de Linux para principiantes (con ejemplos)

  5. El tutorial del comando Numfmt con ejemplos para principiantes

El tutorial del comando Fold con ejemplos para principiantes

El tutorial del comando df con ejemplos para principiantes

El tutorial de Top Command con ejemplos para principiantes

El tutorial del comando mktemp con ejemplos para principiantes

El tutorial de comando Grep con ejemplos para principiantes

El tutorial del comando fc con ejemplos para principiantes