contar el número de líneas palabras y caracteres sin usar el command wc

He creado progtwigs utilizando commands wc , pero quiero saber cómo contar el número de líneas, palabras y caracteres sin utilizar wc en un file con un script de shell. Ayudaría mucho si amablemente me ayudas en esto.

Para contar la cantidad de bytes (como wc -c )

 < file LC_ALL=C tr -c '\n' '[\n*]' | grep -c '^' 

Para contar el número de caracteres de nueva línea (como wc -l ):

 < file LC_ALL=C tr -cd '\n' | grep -c '^' 

Para palabras (como wc -w ), suponiendo un trío compatible con POSIX como FreeBSD (no GNU) y suponiendo que el file no contiene secuencias de bytes ilegales:

 < file tr -cs '[:space:]' '[x*]' | tr -cs x '[\n*]' | grep -cx 

Para caracteres (como wc -m ), mismas restricciones:

 < file tr -c '\n' '[\n*]' | grep -c '^' 

En el resultado de:

 printf '\0foo\u2006and \r\fbar\nbaz' 

Dan respectivamente 20, 1, 4, 18, como wc en un sistema FreeBSD en una configuration regional en_GB.UTF-8.