Cómo usar el comando wc: contar líneas, palabras y bytes desde la terminal

¿Cuántas líneas tiene este log? ¿Cuántos archivos hay en esta carpeta? ¿Cuántas veces aparece un error? Son preguntas que salen todo el tiempo en la terminal, y wc las responde en un segundo. Es el comando de Linux que cuenta líneas, palabras y bytes de un archivo o de lo que le pases por una tubería.

En esta guía de NotiLinux ya vimos cómo leer archivos con cat, less, head y tail, y cómo buscar texto con grep. Ahora toca saber cuánto texto hay, y para eso está wc.

El nombre viene de word count (conteo de palabras), aunque hace bastante más que eso. wc forma parte de GNU coreutils, así que viene instalado en prácticamente cualquier distribución.

Sin opciones, muestra tres números y el nombre del archivo: líneas, palabras y bytes, en ese orden.

wc [opciones] [archivo...]

Si no indicás ningún archivo, wc lee lo que le llegue por la entrada estándar, que es lo que pasa cuando lo usás después de una tubería.

Para ver cómo se lee la salida, armemos un archivo chico de prueba:

printf 'uno dos\ntres\n' > ejemplo.txt
wc ejemplo.txt

La salida es esta:

 2  3 13 ejemplo.txt

Dos líneas, tres palabras y 13 bytes. Los espacios de alineación pueden variar un poco según el sistema.

Contar solo las líneas de un archivo (probablemente el uso más común):

wc -l /etc/passwd

Contar cuántos elementos hay en un directorio, combinándolo con ls:

ls | wc -l

Contar cuántas líneas de un log contienen una palabra, combinándolo con grep:

grep error /var/log/syslog | wc -l

Contar todos los archivos .txt que hay dentro de una carpeta y sus subcarpetas, con find:

find . -name "*.txt" | wc -l

Cuando pasás varios archivos, wc muestra una fila por cada uno y una fila final con el total:

wc -l archivo1.txt archivo2.txt

  • -l: cuenta solo las líneas.
  • -w: cuenta solo las palabras.
  • -c: cuenta los bytes.
  • -m: cuenta los caracteres.
  • -L: muestra la longitud de la línea más larga.

Podés combinar varias. Por ejemplo, para ver solo líneas y palabras:

wc -lw archivo.txt

Si querés obtener únicamente el número, sin el nombre del archivo, redirigí el archivo a la entrada de wc:

wc -l < archivo.txt

Es muy práctico cuando el resultado lo vas a usar en un script.

Confundir bytes con caracteres. En un archivo con acentos o con la letra ñ, que en UTF-8 ocupan más de un byte, -c y -m pueden dar números distintos. Si querés saber cuántos caracteres tiene el texto, usá -m.

Que falte una línea en el conteo. wc -l cuenta saltos de línea. Si la última línea del archivo no termina con uno, no se cuenta. Pasa a veces con archivos generados por otros programas.

Dar por hecho qué cuenta ls | wc -l. Cuenta lo que ls lista, y por defecto ls no muestra los archivos ocultos. Si los querés incluir, probá con ls -A | wc -l.

  • No hace falta usar cat archivo | wc -l: con wc -l archivo alcanza y te ahorrás un proceso.
  • Usalo al final de una tubería para convertir cualquier listado en un número: archivos, coincidencias, procesos, lo que necesites.
  • Antes de abrir un archivo enorme, un wc -l te dice con qué te vas a encontrar y si conviene usar less o head.

wc es un comando chiquito, pero se vuelve imprescindible apenas empezás a combinar comandos con tuberías. Con él, cualquier salida larga se transforma en un número que podés leer de un vistazo.

Publicaciones Similares

Deja una respuesta

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