sábado, 22 de octubre de 2022

Comandos wc y sort

Posted by q3it on sábado, octubre 22, 2022 in


Otro comando muy simple y útil es el comando wc y vienen de las siglas "word count" que es contador de palabras, pero en realidad lo que muestra es el número de: líneas, palabras y caracteres. Su sintaxis es así de simple wc y el nombre del fichero. Esto nos mostrará en una línea, el número de líneas, el número de palabras, el número de caracteres y el nombre de fichero.

Nosotros podemos especificar varios ficheros y nos mostrará una línea por cada fichero. Si queremos filtrar, por ejemplo el número de líneas, pondremos wc -l comandos.txt o -w para el número de palabras o -m para el número de caracteres. 
 
Como vemos es muy útil para contar el número de líneas sin tener que utilizar nl o cat para listar todo el contenido y ver el último número.

Por ejemplo wc comandos.txt nos mostrará que hay 17 líneas, 15 palabras y 181 caracteres. 
 
 
Nosotros podemos ver el contenido de este fichero y confirmar que hay 15 palabras porque hay dos líneas que están vacías. 
 
 
Por eso hay 17 líneas y luego 181 caracteres. Si nosotros queremos limitar lo que mostramos, por ejemplo, sólo el número de líneas, utilizamos la opción -l o para el número de palabras con -w y el número de caracteres con -m.
 
 
Como vemos es un comando muy simple y muy utilizado para cortar líneas. Cuando nosotros tenemos un log o tenemos un fichero y queremos saber qué grande es y no sólo por el tamaño del fichero sino también por el número de líneas utilizando wc -l siempre podemos ver el número de líneas.
 
 
Ahora voy a hablar de un comando muy potente, que tiene muchas opciones, pero que voy a resumir estas opciones a las más conocidas. El comando es sort, y lo que hace es visualizar ficheros de forma ordenada. 
 
 
Si nosotros ponemos sort y un fichero, lo que hará es ordenarlo alfabéticamente, si nosotros especificamos varios ficheros cogerá el contenido de todos sus ficheros y los mostrará ordenados. No mostrará ordenado uno por uno, sino que el contenido de todos estos ficheros los muestra ordenados en pantalla.
 
 
Sort permite muchas opciones, pero las más conocidas son:
 
-r Para orden inverso alfabéticamente.
-n Uso de criterios numéricos.
-k num Ordenar por columna num.
-t sep Indicar separador de columnas.
-f Ignora mayúsculas y minúsculas.
 
Vamos a ver en consola algunos ejemplos con el comando sort. Imaginemos que nosotros tenemos nuestro fichero y vemos que está desordenado y que el primero de la lista es papel, luego jabón, y luego cepillo, y nosotros queremos ordenar esta lista.

 
Entonces ejecutamos sort objetos.txt y vemos que nos lo ordena.
 
 
Si nosotros queremos en orden inverso tendremos que utilizar -r.
 
 
Si nosotros tenemos un fichero con números y lo queremos ordenar, veremos que surge un problema, cómo la primera columna es numérica entonces cuando yo ordeno, lo que está ordenando lo trata como si fuese texto. 
 
 
Nosotros lo que queremos es ordenar numéricamente de forma correcta, entonces utilizaremos la opción -n.

 
En este caso si nosotros en vez de ordenar el número quisiéramos ordenar por el nombre pues entonces utilizaríamos -k indicando la columna y ahora como están separados por espacio no tendríamos que indicar el separador y vemos que nos lo ordena primero nos pondría los espacios luego nos pondría ordenados alfabéticamente.
 
 
Si nosotros tuviéramos un separador distinto del espacio, tendríamos que especificar con -t el separador que nosotros vamos a utilizar, por ejemplo : dos puntos.