Este artículo explica cómo utilizar la herramienta wc
para saber el tamaño de una salida de un comando.
Anteriormente demostré cómo utilizar wc
para contar la cantidad de líneas o palabras de una salida. Sin embargo, es posible también utilizar wc
para contar bytes. Esto permite calcular tamaños.
Deseo conocer el tamaño (expresado en bytes) de la salida de un comando (no el tamaño de un archivo). ¿Cómo es posible medirlo? Veamos directamente un ejemplo:
emi@hal9000:~$ grep ip /etc/protocols ip 0 IP # internet protocol, pseudo protocol number ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'') ipv6 41 IPv6 # Internet Protocol, version 6 ipv6-route 43 IPv6-Route # Routing Header for IPv6 ipv6-frag 44 IPv6-Frag # Fragment Header for IPv6 skip 57 SKIP # SKIP ipv6-icmp 58 IPv6-ICMP # ICMP for IPv6 ipv6-nonxt 59 IPv6-NoNxt # No Next Header for IPv6 ipv6-opts 60 IPv6-Opts # Destination Options for IPv6 ipip 94 IPIP # IP-within-IP Encapsulation Protocol etherip 97 ETHERIP # Ethernet-within-IP Encapsulation [RFC3378] ipcomp 108 IPCOMP # IP Payload Compression Protocol mpls-in-ip 137 MPLS-in-IP # MPLS-in-IP [RFC4023] hip 139 HIP # Host Identity Protocol
He filtrado un archivo con grep
y deseo conocer el tamaño resultante. A tal fin, es posible recurrir a wc
con la opción -c
la cual permite contar bytes:
emi@hal9000:~$ grep ip /etc/protocols | wc -c 684
Más ejemplos, incluyendo salidas con caracteres multi-byte:
emi@hal9000:~$ echo -n "hola" | wc -c 4 emi@hal9000:~$ echo -n "peña" | wc -c 5
Notar la diferencia en tamaño a causa de los caracteres multibyte como ñ
o vocales con tilde:
emi@hal9000:~$ echo -n "peña" | hexdump -C 00000000 70 65 c3 b1 61 |pe..a| 00000005
emi@hal9000:~$ echo -n "ñandú" | wc -c 7
Referencias