Mostrando las entradas con la etiqueta Bash. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Bash. Mostrar todas las entradas

16 abr 2013

Como contar el número de líneas de varios archivos

Supongamos que tenemos una montaña de archivos con datos y todos terminan con la extensión .dat. Para verificarnos que todos están igualmente formateados podemos, por ejemplo, contar el número de líneas para saber si todas son iguales. En linux un comando tan simple y sencillo como este, puede salvarnos de muchos apuros:

ls *.dat | xargs wc -l
para eso es necesario tener instalado el programita xargs (en debian: aptitude install xargs ). En el comando anterior:
  • ls *.dat nos arroja todos los archivos que terminan con la extensión .dat
  • Los resultados se pasan para el comando xargs por un tubo (en inglés pipe, y se escribe como una rayita vertical |)
  • xargs ejecuta, para cada archivo .dat, el siguiente comando wc -l que cuenta las líneas de un archivo.

En la pantalla tendrás algo como esto:

53 r2=1.900_resultados.dat
8 r2=1.950_resultados.dat
53 r2=2.000_resultados.dat
53 r2=2.100_resultados.dat
53 r2=2.050_resultados.dat
Ufa! vean la segunda línea, hemos encontrado un problema antes de que se nos presentara. Houston,no problemo!

Ahora supongan que la lista anterior no tiene 5 archivos, sino muchos más. Sería tortuoso buscar línea a línea, para ver cual de todos los archivos tiene más o menos que 53 líneas.<

Vamos a hilar más fino y hacer una modificación que nos arroje únicamente los nombres de los archivos que tengan una cantidad diferente de líneas:

ls *.dat | xargs wc -l | grep -v '53 r2'
En la última modificación, grep va a buscar todos los resultados anteriores que tengan 53 r2, la cadena de caracteres que identifica todos los archivos "buenos" (53 es el número de línea y r2 son los dos primeros caracteres de la ruta del archivo). Con la opción -v le decimos a grep, que invierta la búsqueda y nos muestre los casos que NO contienen la cadena anterior.

12 oct 2012

Cambiando el tamaño de muchas imagenes

Imagina tener que cambiar a mano, una por una, el tamaño de cientos de imágenes. Sería una pesadilla, no? Pues bueno, esas pesadillas las enfrentan los usuarios de sistemas operativos privativos, día a día. O lo hacen así, o invierten un dinerito para que un programa les haga eso, o se bajan un programa de procedencia dudosa que les cambia ese problema por otro, los virus.

Pero tu, querido amigo del software libre, no tienes por qué preocuparte. Para eso existe la comunidad, para ayudarnos entre todos.

Esta vez, quien viene a nuestro rescate es el MOGRIFY, una herramienta de la suite ImageMagick.

CUIDADO! antes de darte el poder debo advertirte que el mogrify está hecho para salvar sobre los orginales. Guarda copia de los archivos orginales si quieres mantener su tamaño original.

Este es el comandito que yo uso para cambiar el tamaño de las cientos de fotos que le tomo a mi hija y poder subirlas a su blog.

mogrify -resize 33% 2012-*.jpg

Y listo! en cuestión de microsegundos el problema ha sido solucionado. Pero no creas que todo termina ahí. El mogrify es mucho más que eso. Te dejo la página del ImageMagick (en inglés) para que aprendas a utilizarlo.

13 sept 2012

Como contar archivos en linux

Como contar archivos desde la interfaz de línea de comandos (CLI) o consola? Supongamos que tenemos muchos datos experimentales en muchos archivos txt. Para contarlos, solo debemos correr en una consola el siguiente comando:

ls datos_experimentales*.txt | egrep -c "\.txt$"
lo anterior suponiendo que todos los archivos comienzan con el prefijo datos_experimentales y terminan con la extensión txt. Ahora a contar! que no muera la memoria del conde contador!

Mi camino recorrido