in

Comando uniq en LINUX con ejemplos

gfg 200x200 min

los uniq command en Linux es una utilidad de línea de comandos que informa o filtra las líneas repetidas en un archivo.
En palabras simples, uniq es la herramienta que ayuda a detectar las líneas duplicadas adyacentes y también elimina las líneas duplicadas. uniq filtra las líneas coincidentes adyacentes del archivo de entrada (que se requiere como argumento) y escribe los datos filtrados en el archivo de salida.

Sintaxis del comando uniq:

 //...syntax of uniq...// 
$uniq [OPTION] [INPUT[OUTPUT]]

La sintaxis de esto es bastante fácil de entender. Aquí, APORTE se refiere al archivo de entrada en el que las líneas repetidas deben filtrarse y si no se especifica INPUT, entonces uniq lee de la entrada estándar. PRODUCCIÓN se refiere al archivo de salida en el que puede almacenar la salida filtrada generada por uniq comando y como en el caso de INPUT si no se especifica OUTPUT entonces uniq escribe en la salida estándar.

Ahora, entendamos el uso de esto con la ayuda de un ejemplo. Suponga que tiene un archivo de texto llamado kt.txt que contiene líneas repetidas que deben omitirse. Esto se puede hacer simplemente con uniq.

//displaying contents of kt.txt//

$cat kt.txt
I love music.
I love music.
I love music.

I love music of Kartik.
I love music of Kartik.

Thanks.

Ahora, como podemos ver, el archivo anterior contiene varias líneas duplicadas. Ahora, usemos el comando uniq para eliminarlos:

//...using uniq command.../

$uniq kt.txt
I love music.

I love music of Kartik.

Thanks.

/* with the use of uniq all
the repeated lines are removed*/

Como puede ver, solo usamos el nombre del archivo de entrada en el ejemplo uniq anterior y como no usamos ningún archivo de salida para almacenar la salida producida, el comando uniq mostró la salida filtrada en la salida estándar con todas las líneas duplicadas remoto.

Nota: uniq no puede detectar las líneas duplicadas a menos que estén adyacentes entre sí. Por lo tanto, el contenido del archivo debe ordenarse antes de usar uniq o simplemente puede usar sort -u en lugar del comando uniq.

Opciones para el comando uniq:

  1. -c – -count: Indica cuántas veces se repitió una línea mostrando un número como prefijo con la línea.
  2. -d – -repetido: Solo imprime las líneas repetidas y no las líneas que no se repiten.
  3. -D – -todo-repetido[=METHOD] : Imprime todas las líneas duplicadas y METHOD puede ser cualquiera de los siguientes:
    • ninguno : No delimite líneas duplicadas en absoluto. Este es el predeterminado.
    • anteponer: Inserte una línea en blanco antes de cada conjunto de líneas duplicadas.
    • por separado: Inserte una línea en blanco entre cada conjunto de líneas duplicadas.
  4. -f N –campos-de-salto (N): Le permite omitir N campos (un campo es un grupo de caracteres, delimitado por espacios en blanco) de una línea antes de determinar la unicidad de una línea.
  5. -i –ignorar caso: De forma predeterminada, las comparaciones que se realizan distinguen entre mayúsculas y minúsculas, pero con esta opción se pueden realizar comparaciones que no distinguen entre mayúsculas y minúsculas.
  6. -s N – -saltar-caracteres (N): No compara los primeros N caracteres de cada línea mientras determina la singularidad. Es como la opción -f, pero omite caracteres individuales en lugar de campos.
  7. -u – -único: Le permite imprimir solo líneas únicas.
  8. -z – -terminado en cero: Hará que una línea termine con 0 bytes (NULL), en lugar de una nueva línea.
  9. -w N – -check-chars (N): Solo compara N caracteres en una línea.
  10. – – ayuda : Muestra un mensaje de ayuda y sale.
  11. – – versión : Muestra información de la versión y sale.

Ejemplos de uniq con opciones

1. Usando la opción -c: Indica el número de veces que se repitió una línea.

//using uniq with -c//

$uniq -c kt.txt
3 I love music.
1
2 I love music of Kartik.
1
1 Thanks.

/*at the starting of each 
line its repeated number is
displayed*/

2. Using -d option : It only prints the repeated lines.

//using uniq with -d//

$uniq -d kt.txt
I love music.
I love music of Kartik.

/*it only displayed one
 duplicate line per group*/

3. Usando la opción -D: También imprime solo líneas duplicadas, pero no una por grupo.

//using -D option//

$uniq -D kt.txt
I love music.
I love music.
I love music.
I love music of Kartik.
I love music of Kartik.

/* all the duplicate lines 
are displayed*/

4. Usando la opción -u: Imprime solo las líneas únicas.

//using -u option//

$uniq -u kt.txt
Thanks.

/*only unique lines are
displayed*/

5. Usando la opción -f N: Como se dijo anteriormente, esto permite omitir los N campos al comparar la unicidad de las líneas. Esta opción es útil cuando las líneas están numeradas como se muestra en el siguiente ejemplo:

//displaying contents of f1.txt//

$cat f1.txt
1. I love music.
2. I love music.
3. I love music of Kartik.
4. I love music of Kartik.

//now using uniq with -f N option//

$uniq -f 2 f1.txt
1. I love music.
3. I love music of Kartik.

/*2 is used cause we needed to
compare the lines after the
numbering 1,2.. and after dots*/

6. Usando la opción -s N: Esto es similar a la opción -f N pero omite N caracteres pero no N campos.

//displaying content of f2.txt//

$cat f2.txt
#%@I love music.
^&(I love music.
*-!@thanks.
#%@!thanks.

//now using -s N option//

$uniq -s 3 f2.txt
#%@I love music.
*-!@thanks.
#%@!thanks.

/*lines same after skipping
3 characters are filtered*/

7. Usando la opción -w: De manera similar a la forma de omitir caracteres, también podemos pedirle a uniq que limite la comparación a un número determinado de caracteres. Para ello, se utiliza la opción de línea de comandos -w.

//displaying content of f3.txt//

$cat f3.txt
How it is possible?
How it can be done?
How to use it?

//now using -w option//

$uniq -w 3 f3.txt
How

/*as the first 3 characters
of all the 3 lines are same
that's why uniq treated all these
as duplicates and gave output 
accordingly*/

8. Usando la opción -i: Se utiliza para que la comparación no distinga entre mayúsculas y minúsculas.

//displaying contents of f4.txt//

$cat f4.txt
I LOVE MUSIC
i love music
THANKS

//using uniq command//
$uniq f4.txt
I LOVE MUSIC
i love music
THANKS

/*the lines aren't treated
as duplicates with simple 
use of uniq*/

//now using -i option//

$uniq -i f4.txt
I LOVE MUSIC
THANKS

/*now second line is removed
when -i option is used*/

9. Usando la opción -z: De forma predeterminada, la salida que produce uniq tiene terminación de nueva línea. Sin embargo, si lo desea, desea tener una salida terminada en NULL en su lugar (útil al tratar con uniq en scripts). Esto puede hacerse posible usando la opción de línea de comando -z.

Sintaxis:

//syntax of using uniq
with -z option//

$uniq -z file-name

? list = PLqM7alHXFySFc4KtwEZTANgmyJm3NqS_L

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

apple touch icon@2

¿Cómo configurar las variables de entorno en Python?

275px USB 3 MemoryStick

USB 2.0 vs USB 3.0: diferencia y comparación