Podcast 07×09 Entomología y Software Libre con Alejandro Torres
Seguimos con la temporada de audios de KDE España. Hoy toca anunciar que ya está disponible el Podcast 07×09 Entomología y Software Libre con Alejandro Torres, un más que interesante audio con en el que aprenderemos un montón sobre una profesión que sin duda es 100% realizable con Software Libre.
Podcast 07×09 Entomología y Software Libre con Alejandro Torres
Bienvenidos a un nuevo podcast de los podcast de KDE España, el
noveno de esta septima temporada y que queda encuadrado en la serie profesiones y Software Libre. En esta ocasión tenemos a Alejandro Torres, usuario de software libre, entomologo y dedicado a la I+D en ese entorno. Entusiasta del software libre y ferreo defensor de la privacidad.
Los presentadores fueron:
- Rubén Gómez: miembro de KDE España, de HackLab Almería y de Document Foundation en la labor de presentador.
- Baltasar Ortega (un servidor): editor de KDE Blog, secretario de KDE España, miembro de GNU/Linux València y de KDE e.V.
- José Picón, miembro de KDE España y de GNU/Linux València y que hizo las labores de productor.
Como novedad, decir que la sección de noticias sobre KDE, las podéis encontrar en los podcast KDE Express.

Para los interesados, algunos de los proyectos comentados son:
• Bug flow es un recurso comunitario para desarrollar y compartir flujos de trabajo y módulos de digitalización de colecciones entomológicas. Los planes son capturar los métodos y prácticas utilizados para hacer este trabajo e incorporar nuevas prácticas de versionado y metadatos para los flujos de trabajo desarrollados utilizando estos módulos. https://github.com/EntCollNet/BugFlow
• Bio7 es un entorno de desarrollo integrado para la modelización ecológica y contiene potentes herramientas para la creación de modelos, el análisis científico de imágenes y el análisis estadístico. https://github.com/Bio7
• Tratamiento de imágenes científicas: ImageJ (con compatibilidad añadida en Cellprofiler, CVIPtools, etc.). Superado por Fiji (image processing package) o KNIME (integra varios componentes para el aprendizaje automático y la minería de datos a través de su concepto modular de canalización de datos «Building Blocks of Analytics».), o por OMERO, para el tratamiento de imágenes de microscopio electrónico.
• Insect Life Cycle Modeling (ILCYM): https://www.cabi.org/cabebooks/ebook/20133231108
• SMCP-Aedes: Sistemas de Monitoreo y Control Poblacional: https://pubmed.ncbi.nlm.nih.gov/23844059
• FlyPi: a low-cost and modular open-source alternative to commercially available options for optogenetic experimentation: https://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.2002702
• scAnt-an open-source platform for the creation of 3D models of arthropods (and other small objects) : https://pubmed.ncbi.nlm.nih.gov/33954036
• Recursos para encontrar proyectos de software y hardware libre relacionados con entomología, o las ciencias naturales:
◦ Github, Gitlab
◦ Hackaday, Hackster.io, Instructables, Thingverse
Como siempre, esperamos vuestros comentarios que os aseguro que son muy valiosos para los desarrolladores, aunque sean críticas constructivas (las otras nunca son buenas para nadie). Así mismo, también nos gustaría saber los temas sobre los que gustaría que hablásemos en los próximos podcast.

Lanzada la beta de Plasma 5.23 Edición 25 Aniversario
Una vez finalizado el periodo de mantenimiento de Plasma 5.22 es hora de ir preparando el lanzamiento de la siguiente versión. Es por ello que me complace compartir con vosotros que ha sido lanzada la beta de Plasma 5.23, la próxima versión del escritorio de la Comunidad KDE que nos llega con novedades interesantes y que coincide casi con el 25 aniversario del Projecto KDE, hecho que no ha pasado desapercibido para los desarrolladores ya que esta versión llevará este nombre en clave. Es el momento de que esta beta sea probada y que se reporten los errores que se encuentren. ¡No pierdas la oportunidad de contribuir al desarrollo de Plasma!
Lanzada la beta de Plasma 5.23 Edición 25 Aniversario
El pasado 16 de septiembre fue lanzada la beta de Plasma 5.23. En esta segunda versión liberada del 2021, no apta todavía para el usuario domésticos, se ha centrado en que el escritorio de la Comunidad KDE.
En palabras de sus desarrolladores:
Este es el lanzamiento Beta de Plasma – Edición del 25 aniversario. Para asegurar que los usuarios finales tengan las mejor experiencia posible con la próxima versión de Plasma, KDE publica hoy esta versión de pruebas del software. Animamos a los más aventureros a probarla e informar de los problemas que encuentren para que los programadores puedan limar las asperezas antes de que se publique la versión final, prevista para el 12 de octubre.

Plasma Edición del 25 Aniversario es un salto adelante en la búsqueda de un escritorio más eficiente y usable. Hemos mejorado la velocidad y la estabilidad de Plasma, al tiempo que incluimos cambios que facilitan su uso tanto en dispositivos de escritorio como táctiles.
Muchas de sus novedades se han ido desgranando en el blog de Nate Graham pero si queréis saber qué nos espera no dejéis de ver el anuncio oficial donde veréis el ingente número de novedades para Wylanda, el lanzador de aplicaciones, Discover, Breeze, plasmoides, etc.
Pruébalo y reporta errores

Todas las tareas dentro del mundo del Software Libre son importantes: desarrollar, traducir, empaquetar, diseñar, promocionar, etc. Pero hay una que se suele pasar por alto y de la que solo nos acordamos cuando las cosas no nos funcionan como debería: buscar errores.
Desde el blog te animo a que tú seas una de las personas responsables del éxito del nuevo lanzamiento de Plasma 5.23 de la Comunidad KDE. Para ello debes participar en la tarea de buscar y reportar errores, algo básico para que los desarrolladores los solucionen para que el despegue del escritorio esté bien pulido. Debéis pensar que en muchas ocasiones los errores existen porque no le han aparecido al grupo de desarrolladores ya que no se han dado las circunstancias para que lo hagan.
Para ello debes instalarte esta beta y comunicar los errores que salgan en bugs.kde.org, tal y como expliqué en su día en esta entrada del blog.
Shutdown or Switch – Plasmoides de KDE (184)
Suma y sigue. La lista de plasmoides para Plasma sigue aumentando con nuevas alternativas para personalizar y adaptar nuestro escritorio para nuestras necesidades. En esta ocasión os presento a Shutdown or Switch, otro simple widget similar a Compact Shutdown, que nos permite añadir un menú para controlar la sesión personalizado en cualquier sitio de nuestro entorno de trabajo.
Shutdown or Switch – Plasmoides de KDE (184)
Me encantan este tipo de plasmoides ya que confieren al sistema la flexibilidad necesaria para poder personalizar nuestro sistema hasta límites insospechados como hemos visto en vídeos como en el convertíamos nuestro Plasma en un Chrome OS, en un Windows o en un MacOS.
En concreto hoy os presento Shutdown or Switch de davide-sd que nos permite poner un pequeño lanzador con los comandos de salida,suspensión, hibernación, reinicio, apagado del sistema o cambio de usuario. De hecho es una versión personalizada del widget User Switcher creado por Kai Uwe Broulik y que ofrece muchas más opciones de configuración.

Y como siempre digo, si os gusta el plasmoide podéis “pagarlo” de muchas formas en la nueva página de KDE Store, que estoy seguro que el desarrollador lo agradecerá: puntúale positivamente, hazle un comentario en la página o realiza una donación. Ayudar al desarrollo del Software Libre también se hace simplemente dando las gracias, ayuda mucho más de lo que os podéis imaginar, recordad la campaña I love Free Software Day 2017 de la Free Software Foundation donde se nos recordaba esta forma tan sencilla de colaborar con el gran proyecto del Software Libre y que en el blog dedicamos un artículo.
Más información: KDE Store
¿Qué son los plasmoides?
Para los no iniciados en el blog, quizás la palabra plasmoide le suene un poco rara pero no es mas que el nombre que reciben los widgets para el escritorio Plasma de KDE.
En otras palabras, los plasmoides no son más que pequeñas aplicaciones que puestas sobre el escritorio o sobre una de las barras de tareas del mismo aumentan las funcionalidades del mismo o simplemente lo decoran.
El comando sleep de #GNU
Veamos qué hace y cómo utilizar el comando sleep de las herramientas coreutils del sistema GNU

Los comandos de GNU coreutils son las herramientas básicas de nuestros sistemas GNU con kernel Linux similares a las de sistemas Unix, para gestionar desde la línea de comandos el sistema y operaciones con archivos de texto.
En este caso vamos a repasar para qué sirve y cómo usar el comando sleep por si tenemos que usarlo en nuestros scripts.
Al ejecutar el comando sleep, lo que hace es pausar la ejecución durante un periodo de tiempo especificado en la invocación del comando. Debemos pasarle un parámetro de tiempo o nos mostrará un error.
Para indicar el tiempo que debe pausar se le pasan valores positivos, pudiendo ser con coma flotante y un sufijo mediante una letra que indica el periodo de tiempo:
- s → para el valor en segundos (el valor predeterminado)
- m → para minutos
- h → para horas
- d → para días
¡Sí, el comando sleep puede pausar durante días! En un principio el valor mínimo que se podía especificar era de 1 segundo, ya que no admitía decimales.
Es decir, que podemos ejecutar:
sleep 0.5
Y pausará durante medio segundo. Como he dicho el valor predeterminado son los segundos, así que si no se especifica un sufijo, el comando entenderá que son segundos.
También en las primeras versiones de este comando, solo admitía un solo parámetro. Pero hoy en día, se pueden especificar varios parámetros y el resultado es que el comando sleep pausará por la suma de todos los parámetros.
Es decir, que si ejecutamos lo siguiente:
sleep 1d 2.5h 3m 4s
Se pausará durante 1 día, 2 horas y media, 3 minutos y 4 segundos.
Y esto es todo de este sencillo comando de GNU. No sé si será muy útil en el día a día, pero ahí queda la información. Más información en este enlace:

Oficina Software Libre de la Universidad de Zaragoza (OSLUZ)
Después de escuchar el podcast de Mancomún sobre el «Concilio de lo Libre» y en aras de conocer un poco mejor la relación entre Software Libre y las universidades he decidido realizar una serie de artículos donde de a conocer las Oficinas de Software Libre que tenemos en España. Y sin ninguna razón en particular he decidido empezar por la Oficina Software Libre de la Universidad de Zaragoza, conocida por su acrónimo de OSLUZ y que ofrece varios servicios interesantes y que es bastante activa en iniciativas a nivel nacional.
Las oficinas del Software Libre de las universidades son departamentos de estas instituciones que tienen como objetivo general, como no podía ser de otra forma, promocionar el Software Libre.
Lamentablemente deben su existencia a que las universidades, fuera de toda lógica, no promocionan ni utilizan prioritariamente Software Libre en sus actividades, enseñanzas o procesos, así que alguien debe hacerlo y es aquí donde entran las Oficinas de Software Libre (OSL).
Existen muchas OSL en todo el territorio español y es el momento de hacer un repaso de las mismas en el blog. Espero que os guste y que, sobre todo, os anime a acercaros a ellas para realizar todo tipo de actividades.
Oficina Software Libre de la Universidad de Zaragoza (OSLUZ)

Si estudias en Zaragoza y te interesa el Software Libre o quieres organizar un evento relacionado con este mundillo no dudes en ponerte en contacto con la Oficina de Software Libre de la Universidad de Zaragoza, también conocida como OSLUZ.
¿Qué ofrece la OSLUZ?
Esta oficina, y espero que alguien me corrija si estoy equivocado, tiene un buen nivel de actividad ya que:
- Tiene una página web activa con sección de noticias con última actualización de julio de 2021.
- Participa en «El Concilio de lo Libre«.
- Promociona el actual Concurso Universitario de Software Libre.
- Organizan los «Viernes Libres«, jornadas donde se realizan charlas y talleres sobre tecnologías libres.
- Tiene canal de Youtube y de Telegram.
- Está presente en redes como Twitter.
- Ofrece una servidor para facilitar la descarga e instalación de aplicaciones de Software Libre. Más información en su web.
- Ofrece tutoriales como «Guía de instalación de FileMaker Pro 13 en Debian» con los que ayuda a la difusión del SL.
En resumen, parece que estamos antes una OSL activa y con la que estoy seguro que se podría contar en futuros eventos.
Más información: OSLUZ
Lagrange un navegador para el protocolo Gemini
Lagrange es una interfaz gráfica multiplataforma para equipos de escritorio para navegar por los sitios que componen el Geminispace

Hace unos meses conocí el Proyecto Gemini, un proyecto comenzado en 2019 por solarpunk y respaldado por una comunidad que trata de volver a la esencia de lo que un día fue la web.
Gemini quiere ser algo más que Gopher (otro protocolo más simple y anterior) y algo menos que la web actual.
Por resumir mucho y sin ser un experto, la web comenzó con el protocolo https por medio del que equipos en red se comunicaban entre sí y servían archivos de hipertexto.
Esos comienzos sencillos y básicos han derivado en toda esta pléyade de sitios webs que conocemos y visitamos a diario. Pero mucho ha cambiado el panorama desde entonces.
Los sitios web, ahora rastrean a los usuarios recopilando mucha más información de la que podríamos pensar, las webs (algunas de ellas) también están llenas de molesta publicidad que estorba la lectura y distrae, buscando un clic para venderte algo.
Mensajes emergentes, vídeos que se ponen a reproducirse solos, advertencias de cookies, suscripciones a newsletters, peticiones de notificaciones… es un horror navegar hoy en día por la red sin un bloqueador de publicidad que remedie todo ese “ruido”.
¿Por qué no regresar a la base, a los inicios? La web actual es como una ciudad ruidosa llena de estímulos, ruido y agobiante. El Proyecto Gemini es como un paseo por el campo, disfrutando del minimalismo y la calma reposada.
El Proyecto Gemini trata de crear webs simples, escritas en un lenguaje propio, que se podría asemejar a Markdown por su sencillez y facilidad de leer.
Con Gemini se crean webs sin cookies, sin rastreo, sin código JavaScript, sin distracciones, sin imágenes, solo texto, recuperando la afición de leer aquello que queremos sin más artificios.
De manera similar a la web actual en que las direcciones url comienzan por www o https:// en Gemini las direcciones comienzan por gemini://
Y para nevegar por esas páginas es necesario un navegador especial, ya que nuestros Firefox, o similares no sirven. Aquí es donde entra en juego el navegador Lagrange para sitios Gemini.
El navegador Lagrange ofrece aquellas funcionalidades de los navegadores a los que estamos acostumbrados como un desplazamiento por la página suave, múltiples pestañas, diferentes temas visuales, fuentes Unicode, marcadores, historial de navegación y otras.
Al igual que el Proyecto Gemini, el navegador Lagrange ha sido también diseñado con ese minimalismo que ofrece el proyecto. Lagrange está escrito en C y depende de un número pequeño de librerías.
Es multiplataforma, ofreciendo binarios precompilados para sistemas operativos privativos. Y por supuesto también está disponible en los repositorios de tu distribución de GNU/Linux.
La verdad es que es un “shock” visual el encontrarse sitios de Gemini, ya que tienen ese aire retro de inicios de internet, con banners hechos con texto y una simpleza interesante.
Yo he optado por este navegador al tener que abrir enlaces Gemini. ¿Y qué sitios o blogs podemos encontrar? Pues por empezar por algún sitio, puedes hacerlo por estos agregadores de sitios Gemini:
- gemini://caracolito.mooo.com/deriva/
- gemini://elmau.net/hispanas.gmi
Sí, tendrás que abrir esos sitios con un navegador como Lagrange. Aquí podrás encontrar “cápsulas” (que es el nombre que se les da a los sitios Gemini) con contenido en español dentro del espacio Gemini.
Me estoy planteando abrirme una “cápsula” dentro de Gemini, pero con este blog creo que ya tengo más que suficiente para las pocas horas libre que me queda… 
Alternativas a Lagrange
Lagrange es solo una opción de los clientes gráficos que existen, pero hay más:
- Castor (Rust, GTK), uno de los más recientes. Admite protocolos Gemini, Gopher y finger.
- GemiNaut (C#), una interfaz amigable para sistemas privativos MS Windows.
- Kristall (C++, QT), un cliente combinado de Gopher y Gemini.
También hay clientes de Gemini para la terminal:
- Amfora (Go), un cliente de terminal “elegante”
- Asuka (Rust), un cliente para la terminal basado en NCurses
- AV-98 (Python), un cliente para la terminal derivado del cliente para Gopher VF-1
- Bombadillo (Go), un cliente combinado para Gopher y Gemini inspirado en los atajos de teclado de Vim
- Elpher (Emacs), el cliente de Gopher y Gemini para el editor Emacs
Espero haber sembrado la curiosidad y que ahora investigues más sobre el tema. Ya conoces Gemini, el navegador Lagrange y puedes empezar a navegar por la Geminiesfera descubriendo nuevos sitios.
Enlaces de interés
- https://proxy.flounder.online/gemini.bmesh.org/gemini_faq.gmi
- https://proxy.flounder.online/gemini.circumlunar.space
- https://es.wikipedia.org/wiki/Gopher
- https://codeberg.org/skyjake/lagrange
- https://gmi.skyjake.fi/lagrange/

Tuxedo se convierte en patrocinador de KDE
Como buen blog sobre KDE me tengo que hacer eco de esta noticia que es importante para conocer un poco mejor como funciona la fundación KDE y cómo seguir constatando que poco a poco más y más empresas creen que la colaboración con el Software Libre. Este aspecto es algo que beneficia a todos y todas. Así que me congratula comentar que Tuxedo se convierte en patrocinador de KDE, en otras palabras, una nueva voz con voto en el desarrollo del proyecto KDE.
Tuxedo se convierte en patrocinador de KDE
Ayer 14 de septiembre se ha anunciado que KDE tiene un nuevo patrocinador. Se trata de Tuxedo una empresa que se dedica a vender portátiles con sistemas GNU/Linux y que se une al elenco de empresas que se suman al carro de colaborar de forma estrecha con la Comunidad KDE.

En palabras de Herbert Feiler, CEO de TUXEDO Computer:
«Nuestros portátiles Linux personalizados (para el trabajo o el ocio) están equipados con KDE Plasma, lo que se traduce en una respuesta positiva por parte de nuestros clientes. Además, realizamos nuestro propio trabajo de desarrollo, lo que podría beneficiar a KDE […]. Estamos encantados de compartir nuestros conocimientos y nos gustaría asegurar y ampliar el trabajo de desarrollo de KDE a largo plazo. Los comentarios que recibimos de los clientes también pueden fluir directamente en el trabajo de desarrollo de KDE»
Por otra parte Aleix Pol, Presidente de KDE e.V., comenta:
«Para KDE, llegar y servir a los usuarios finales es parte de nuestra razón de ser y TUXEDO puede ser un gran aliado en este empeño. Juntos, conseguiremos ampliar nuestras fronteras y crear sistemas y herramientas para servir mejor a nuestros usuarios. Es especialmente alentador ver el compromiso de TUXEDO de unirse a nuestras comunidades de desarrollo y colaborar para que los productos de KDE sean mejores para todos.».
De esta forma, Pine64 se une a otras compañías en su alianza con KDE: The Qt Company, SUSE, Google, Blue Systems, Canonical, Private Internet Access, enioka Haute Couture, Slimbook y Pine64 para continuar apoyando el Software Libre y el desarrollo de los proyectos KDE a través de KDE e.V.
Más información: KDE.News
Curso de Vim: Eliminar las líneas que contengan un texto en #Vim
Un pequeño tutorial del editor Vim para eliminar en un texto las líneas que contengan una cadena de texto determinado

Este es un rápido tutorial en el que veremos un caso práctico (que me ha pasado a mí mismo) para borrar todas las líneas de un texto que contengan una cadena de texto específica.
Este artículo es una nueva entrega del curso “improVIMsado” que desde hace meses vengo publicando en mi blog sobre el editor Vim y que puedes seguir en estos enlaces:
- https://victorhckinthefreeworld.com/tag/vim/
- https://victorhck.gitlab.io/comandos_vim/articulos.html
Y para aprender Vim (de la manera más inteligente) aquí tienes esta útil guía:
La cuestión es que tenía un archivo de unas 300 líneas con un texto en inglés y otro traducido en español. Las líneas en inglés comenzaban con (EN) y las líneas de texto en español comenzaban con (ES). Algo similar a esto:
(EN) Lorem ipsum dolor sit amet
(ES) consectetur adipiscing elit
(EN) sed do eiusmod tempor incididunt
(ES) ut labore et dolore magna aliqua
...
Lo que necesitaba era eliminar del texto todas las líneas que comenzaran con (EN). Asi que para esto eche mano del comando global del editor Vim.
Pincha sobre el enlace para saber más sobre el comando, pero en resumen te puedo decir que tiene el siguiente formato:
:g/patrón/comando
El comando global de Vim busca todas las líneas que contengan el patrón y realiza el comando que le pasamos.
En este caso, quiero que busque todas las líneas que comiencen con el texto (EN) y elimine la línea en cuestión. Para ello ejecutaré el siguiente comando:
:g/^(EN)/d
Diseccionemos el comando:
- :g/ → es el comando global
- ^(EN) → busca las líneas que comiencen (para eso es el símbolo ^) con (EN)
- /d → es el comando que se ejecutará, que en este caso es eliminar la línea
El comando puede ser cualquiera que necesitemos, sustituir una palabra, convertir en mayúscula, etc…
Otra opción de comando, sería borrar todas las líneas que NO contengan la cadena buscada, para eso se utiliza el símbolo ! Y comando sería este:
:g!/^(ES)/d
Con o que borraría todas las líneas que NO comienzan con (ES), por lo que en mi caso eliminaría todas las que comienzan con (EN) que es lo que quiero. Sería similar a ejecutar esto:
:v/^(ES)/d
Y hasta aquí este pequeño tutorial que ha nacido de una necesidad propia y que quería compartir en el blog. ¿Te interesan estas pequeñas “perlas” breves sobre Vim?

Estrategia en GCompris – A fondo @g_compris (15)
Finalizo la serie de que inicié inspirado por una publicación de Valencia Tech en la que se realizaba un listado completo de juegos que ofrece GCompris. Para concluir cierro con la sección de «Estrategia» en GCompris, la cual complementa las actividades de juegos de la suite educativa.
Estrategia en GCompris – A fondo @g_compris (15)
Para poder tener claro lo que hacen las aplicaciones de GCompris he pensado hacer una revisión a su enorme colección de juegos y actividades, realizando una simple captura de pantalla y una breve descripción.
Ya hemos descrito la secciones de:
Y ya es hora de hablar de la actividades de la sección «Estrategia» de GCompris donde nos encontramos con miniaplicaciones pensadas para desarrollar nuestro raciocinio.
Juegos de mesa contra Tux o contra tu amigo: intenta no colocar una ficha en la casilla roja decidiendo cuantas pones antes. Juego más complicado de lo que parece.

Cuatro en raya contra Tux o contra un oponente humano: clásico y adictivo juego donde debes alinear 4 fichas de tu color.

Juego del Molino contra Tux o contra un amigo: No conocía este juego, pero según leemos en la Wikipedia: cada jugador dispone de nueve piezas, u «hombres», que se mueven en el tablero entre veinticuatro intersecciones. El objetivo del juego es dejar al oponente con menos de tres piezas o sin movimiento posible.

Tres en raya contra Tux o contra un oponente humano: clásico juego donde debes alinear 3 fichas de tu color para ganar. Elemento fundamental del clásico del cine Juegos de Guerra.

Damas contra Tux o contra un oponente humano: Otro clásico con los que afinar tus dotes estrategas.

Ajedrez contra Tux o contra un oponente humano: ¿qué se puede decir de este juego milenario?

Final de partida de ajedrez: soluciona los típicos problemas de ajedrez que suelen aparecer en los periódicos.

Colores avanzados: aprende los colores más complejos, pon a prueba tu agudeza distinguiendo matices.
Colores avanzados: aprende los colores más complejos, pon a prueba tu agudeza distinguiendo matices.
Y, con esto, queda finalizado el repaso de GCompris, una suite educativa espectacular, funcional, variada y en constante desarrollo.
El comando wc de #GNU
Veamos qué puede hacer y cómo se usa el comando wc de las herramientas coreutils del sistema GNU

Los comandos de GNU coreutils son las herramientas básicas de nuestros sistemas GNU con kernel Linux similares a las de sistemas Unix, para gestionar desde la línea de comandos el sistema y operaciones con archivos de texto.
En este caso vamos a repasar las opciones del comando wc que sirve para contar las líneas, caracteres y palabras de un archivo u archivos, para utilizarlo en nuestra consola o incorporarlo a nuestros scripts.
En muchos sitios quizás habréis leído sobre este comando que lo que hace es contar el número de líneas de un archivo (o archivos) ¿verdad? ¡Pues es falso! o al menos no es correcto del todo.
El comando cuenta los caracteres de líneas nuevas de un archivo, normalmente representado por \n, además de también contar, palabras y caracteres.
¿Y por qué esa distinción entre líneas y caracteres de nuevas líneas? Vayamos por pasos y poco a poco.
El símbolo $ delante del comando, no es parte del comando y no hay que escribirlo, esto significa que el comando es ejecutado por un usuario sin privilegios de root.
Contador de saltos de línea en un archivo
Para empezar vamos a crear un archivo (sin un salto de línea \n al final del archivo) mediante este comando:
$ echo -n "este archivo tiene 5 palabras" > archivo
Si ahora ejecutamos el comando cat para mostrar el contenido del archivo veremos lo siguiente:
$ cat archivo
este archivo tiene 5 palabras
Como he dicho el comando wc cuenta el número de líneas, el número de palabras y el número de caracteres y los saca por la salida estándar que en este caso sería mostrarlos por pantalla en ese orden junto con el nombre del archivo.
En este caso debería mostrar que el archivo tiene 1 línea, 5 palabras y 29 caracteres ¿no? Veamos qué sucede al ejecutar el comando
$ wc archivo
0 5 29 archivo
Nos dice que no tiene ninguna línea y sí 5 palabras y 29 caracteres. Sucede esto, porque hemos creado el archivo con el comando echo pero sin salto de línea final.
Veamos la diferencia, volviendo a crear el archivo con el comando echo, pero ahora de esta manera (lo que haríamos de manera normal):
$ echo "este archivo tiene 5 palabras" > archivo
A priori el archivo sería igual y si volvemos a mostrarlo con el comando cat, no veríamos ninguna diferencia, pero sí las hay si volvemos a ejecutar el comando wc anterior:
$ wc archivo
1 5 30 archivo
Ahora nuestro archivo sí tiene un salto de línea al final de la única línea que contiene y como verás también ha sumado 1 al contador de caracteres, ya que ahora ese caracter de salto de línea es tomado como tal en la cuenta.
Al editar archivos con un editor de texto, este automáticamente suele añadir esos saltos de línea al final de cada línea.
Palabras para wc
¿Y a qué se refiere una palabra cuando hablamos del comando wc? Una palabra es una secuencia de caracteres delimitadas por espacios en blanco (saltos de línea, tabuladores, etc). Veamos un ejemplo:
$ echo "¿Esto son (¡5 palabras!)?" > archivo
$ wc -w archivo
4 archivo
El contador de palabras del comando wc (más adelante veremos cómo mostrar solo las palabras de un archivo) nos dice que este archivo tiene 4 palabras, para el comando wc los signos de puntuación son irrelevantes.
Vamos a modificar esto añadiendo algunos espacios en blanco para “crear” más palabras para el comando wc:
$ echo "¿Esto son ( ¡5 palabras! ) ?" > archivo
$ wc -w archivo
7 archivo
El añadir más espacios en blanco a los espacios en blanco, no aumenta el número de palabras encontradas:
$ echo "¿Esto son ( ¡5 palabras! ) ?" > archivo
$ wc -w archivo
7 archivo
Bueno, la introducción ha sido un poco larga, pero me parecía interesante dejar claro el concepto antes de continuar viendo más opciones del comando.
wc con varios archivos
El comando puede ser ejecutado pasándole varios archivos a la vez y mostrará las sumas de líneas, palabras y caracteres mas el nombre del archivo de cada uno de ellos y además un total con la suma de todos. Por ejemplo, en mi caso:
$ wc archivo1 archivo2 archivo3
1 5 30 archivo1
4 8 36 archivo2
4 8 36 archivo3
9 21 102 total
Filtrando qué muestra el comando wc
Pero quizás no queremos que nos muestre toda esa información porque para nuestro script o nuestra necesidad solo queremos que muestre uno o varios de esos valores, para ello le podemos decir al comando wc qué valor queremos que nos muestre con estas opciones:
- -c → muestra el valor de bytes del archivo
- -m → muestra el valor de caracteres del archivo
- -w → muestra el valor de palabras del archivo
- -l → muestra el valor de líneas (ya sabes caracteres de nueva línea \n) del archivo
Los valores no son excluyentes, es decir, especificar un valor no elimina que se muestre otro y siempre se mostrarán en orden de líneas, palabras y caracteres, por ejemplo podemos utilizar cualquiera de estos comandos para mostrar los números de lineas y palabras del archivo:
$ wc -wl archivo
$ wc -w -l archivo
Mostrar el valor de la linea mas larga con wc
Otra funcionalidad interesante del comando wc es la de mostrar el valor del número de caracteres de la línea mas larga del archivo con la opción -L
Si especificamos varios archivos, mostrara el valor de la linea mas larga de cada archivo y un total que no es tal, ya que no es la suma de todos los valores, si no el valor mas grande de todos los mostrados:
$ wc -L archivo1 archivo2 archivo3
30 archivo1
8 archivo2
42 archivo3
42 total
Omitir el nombre del archivo en la salida del comando wc
Al usar este comando, en la salida del resultado nos muestra el nombre del archivo, si queremos utilizar este comando en un script, quizás esa información no nos interesa, por lo que tendríamos que procesar la salida para eliminar el nombre del archivo.
Pero existe una manera para hacer que no se muestre directamente el nombre, utilizando la redirección. El comando muestra el nombre cuando es una opción del comando en la línea de comandos, pero no cuando proviene de la entrada estándar (el teclado) u otra fuente y eso es lo que haremos
Usando el redireccionamiento con <
$ wc -w < archivo
7
Usando la entrada estándar
Hasta ahora hemos visto que el comando wc de GNU cuenta el número de líneas, palabras y caracteres de un archivo o archivos, pero también puede hacerlo de las palabras que introduzcamos desde el teclado con la opción –
Usando la entrada estándar (para acabar de introducir texto usaremos la combinación de teclas Ctrl+d):
$ wc -w -
Introduciendo texto
desde el teclado
(Ctrl-d)
5 -
Y estas serian las opciones mas interesantes del comando wc de GNU. ¿Conocías el comando y su uso? ¿Te parecen interesantes estas series de artículos? Usa los comentarios para comentar sobre ello.
