![Cómo programar el reinicio diario en Linux](https://trspos.com/wp-content/uploads/programe-reiniciar-diariamente-linux-400x267.jpg)
Bash uniq Command
![Bash uniq Command](https://trspos.com/wp-content/uploads/comando-bash-uniq.jpg)
En este artículo aprenderás sobre el comando `uniq` en el terminal Bash. El comando `uniq` es una herramienta poderosa que te permitirá eliminar líneas repetidas, contar la cantidad de veces que aparece cada línea, y mucho más. Aprenderás cómo utilizar este comando para analizar archivos de texto y obtener información relevante.
Uso básico
El comando `uniq` funciona eliminando líneas consecutivas repetidas en un archivo de texto. Por ejemplo, si tu archivo contiene varias líneas que se repiten, `uniq` eliminará las líneas repetidas:
```
$ cat archivo.txt
hola
adios
hola
hola
que tal
que tal
que tal
$ uniq archivo.txt
hola
adios
hola
que tal
```
El comando `uniq` mantiene una copia de cada línea única en el archivo original. El `cat` previo a `uniq` es solo para mostrar el contenido del archivo original.
Contar líneas repetidas
El parámetro `-c` en `uniq` te permite contar el número de veces que aparece cada línea redundante:
```
$ uniq -c archivo.txt
3 hola
1 adios
2 que tal
```
Esto te muestra cuántas veces aparece cada línea repetida, junto con la única copia que se mantiene. La primera columna indica cuántas veces apareció esa línea repetida, mientras que la segunda columna muestra la línea original.
Ordenar antes de aplicar uniq
A menudo es necesario ordenar los datos antes de aplicar `uniq`:
```
$ sort archivo.txt | uniq -c
1 adios
3 hola
2 que tal
```
Este comando ordena el archivo de texto antes de aplicar `uniq`, lo que asegura que todas las líneas redundantes estén juntas en el archivo. Luego, se utiliza la opción `-c` para contar el número de veces que aparecen las líneas redundantes.
Omitir primeros caracteres
A veces, habrá datos en tus archivos que no sean pertinentes para el análisis con `uniq`. Para esto se utiliza el parámetro `-s` seguido del número de caracteres a ignorar:
```
$ cat archivo.csv
producto,cantidad,precio
manzana,3,1.20
naranja,5,0.75
manzana,1,1.30
uva,7,0.50
naranja,8,0.60
$ sort archivo.csv | uniq -s 9
manzana,3,1.20
naranja,5,0.75
uva,7,0.50
```
Sólo se toma en cuenta la columna que contiene el nombre del producto. La opción `-s` permite saltar los primeros caracteres, en este caso para ignorar la columna que contiene la cantidad y el precio.
Omitir los X últimos caracteres
De la misma forma que `uniq` permite saltar los primeros caracteres, también permite saltar los últimos caracteres, para esto se utiliza el parámetro `-w` seguido del número de caracteres a tomar en cuenta:
```
$ cat archivo.txt
1.112.345.678
1.110.750.000
1.112.345.678
$ uniq -w 11 archivo.txt
1.112.345.678
```
Nótese que se eliminó la segunda línea, ya que los últimos caracteres fueron ignorados.
Conclusión
El comando `uniq` es una herramienta muy útil en el terminal de Bash para analizar archivos de texto. Ahora ya sabes cómo utilizar `uniq` para eliminar líneas repetidas, contar la cantidad de veces que aparece cada línea, y todos los parámetros adicionales que puedes utilizar para una mayor precisión en tus análisis. Utiliza `uniq` para analizar archivos, eliminando duplicados y obteniendo información relevante.
Preguntas frecuentes
¿Qué significa "uniq"?
`uniq` es la abreviación de "unique", que en inglés significa "único", "singular".
¿Cómo sé si necesito ordenar los datos antes de aplicar `uniq`?
Debes ordenar los datos antes de aplicar `uniq` si necesitas resultados precisos que muestren líneas redundantes consecutivas. Si no, puedes ejecutar `uniq` sin orden previo.
¿Puedo utilizar `uniq` con archivos binarios?
No, `uniq` sólo funciona con archivos de texto. Si intentas utilizar `uniq` con un archivo binario, probablemente obtendrás una salida incorrecta.
¿Cuál es la diferencia entre `uniq` y `sort | uniq`?
`uniq` elimina las líneas consecutivas repetidas en un archivo de texto, mientras que `sort | uniq` ordena los datos antes de aplicar `uniq`. Además, `uniq` utiliza menos recursos de memoria y se ejecuta más rápido que `sort | uniq`.
Deja una respuesta