Introducción
En los sistemas operativos Linux y Unix, el wc
permite contar el número de líneas, palabras, caracteres y bytes de cada archivo o entrada estándar e imprimir el resultado.
En este tutorial, le mostraremos cómo usar el wc
través de ejemplos sencillos y prácticos.
Comando de baño
La sintaxis del wc
es la siguiente:
wc OPTION... [FILE]...
El wc
puede aceptar cero o más nombres de entrada de FILE
Si no se especifica FILE
FILE
es -
, wc
leerá la entrada estándar. Una palabra es una cadena de caracteres delimitada por un espacio, una tabulación o una nueva línea.
En su forma más simple, cuando se usa sin opciones, el wc
imprimirá cuatro columnas, el número de líneas, palabras, recuentos de bytes y el nombre de archivo para cada archivo que se pasa como argumento. Cuando se utiliza la entrada estándar, no se muestra la cuarta columna (nombre de archivo).
Por ejemplo, el siguiente comando mostrará información sobre el archivo virtual /proc/cpuinfo
:
wc /proc/cpuinfo
La salida se verá así:
428 3412 22346 /proc/cpuinfo
- 428 es el número de líneas.
- 3412 es el número de palabras.
- 22346 es el número de caracteres.
Cuando se utiliza la entrada estándar, el nombre del archivo no se muestra:
wc < /proc/cpuinfo
428 3412 22346
Para ver información sobre más de un archivo, pase los nombres de archivo, como argumentos, separados por espacios:
wc /proc/cpuinfo
El comando le dará información sobre cada archivo y una línea que incluye estadísticas totales:
428 3412 22346 /proc/cpuinfo
48 133 1261 /proc/meminfo
447 3665 26759 total
Las siguientes opciones le permiten seleccionar los recuentos que se imprimirán.
-l
,--lines
: imprime el número de líneas.-w
,--words
: imprime el número de palabras.-m
,--chars
: imprime el número de caracteres.-c
,--bytes
: imprime el número de bytes.-L
,--max-line-length
: imprime la longitud de la línea más larga.
Cuando se utilizan varias opciones, los recuentos se imprimen en el siguiente orden: nueva línea, palabras, caracteres, bytes, longitud máxima de línea.
Por ejemplo, para mostrar solo la cantidad de palabras que usaría:
wc -w /proc/cpuinfo
4565 /proc/cpuinfo
Aquí hay otro ejemplo que imprimirá el número de líneas y la longitud de la línea más larga.
wc -lL /proc/cpuinfo
338 562 /proc/cpuinfo
La --files0-from=F
permite que el wc
lea la entrada de archivos especificados por nombres terminados en NUL en el archivo F
Si F
es -
lea los nombres de la entrada estándar. Por ejemplo, puede buscar archivos usando el find
y proporcionar esos archivos como entrada a wc
:
find /etc -name 'host*' -printf0 | wc -l --files0-from=-
La salida mostrará el número de líneas para todos los archivos en el /etc
cuyos nombres comienzan con "host":
4 /etc/host.conf
27 /etc/avahi/hosts
1 /etc/hostname
14 /etc/hosts
46 total
Cuente el número de líneas
El wc
se usa principalmente con la -l
para contar solo el número de líneas en un archivo de texto. Por ejemplo, para contar el número de líneas en el tipo de /etc/passwd
wc -l /etc/passwd
La primera columna es el número de líneas y la segunda es el nombre del archivo:
44 /etc/passwd
Cuenta el número de palabras
Para contar solo el número de palabras en un archivo de texto, use wc -w
seguido del nombre del archivo. El siguiente ejemplo cuenta el número de palabras en el ~/Documents/file.txt
:
wc -l /etc/passwd
El número de palabras se muestra en la primera columna:
423 /home/noviello/Documents/file.txt
Ejemplos de comandos de baño
El wc
se puede utilizar junto con otros comandos a través de tuberías. Aquí hay unos ejemplos.
Cuente los archivos en el directorio actual
El find
muestra una lista de todos los archivos en el directorio actual con cada nombre de archivo en una sola línea para el wc
, que cuenta el número de líneas e imprime el resultado:
find. -type f | wc -l
Cuente el número de usuarios
El siguiente ejemplo wc
para contar el número de líneas de la salida del comando getent
getent passwd | wc -l
Conclusión
El comando wc
significa recuento de palabras y tiene una sintaxis bastante simple. Le permite contar el número de líneas, palabras, bytes y caracteres en uno o más archivos de texto.