contando o número de linhas palavras e caracteres sem usar o comando wc

1

Eu fiz programas usando os comandos wc , mas quero saber como contar o número de linhas, palavras e caracteres sem usar wc em um arquivo usando um script de shell. Ajudaria muito se você gentilmente me ajudar nisso.

    
por VIRENDRA PRATAP SINGH JHALA 27.10.2017 / 14:26

1 resposta

3

Para contar o número de bytes (como wc -c )

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

Para contar o número de caracteres de nova linha (como wc -l ):

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

Para palavras (como wc -w ), assumindo tr compatível com POSIX como o FreeBSD (não o GNU) e assumindo que o arquivo não contém sequências de bytes ilegais:

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

Para caracteres (como wc -m ), mesmas restrições:

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

Na saída de:

printf '
< file LC_ALL=C tr -c '\n' '[\n*]' | grep -c '^'
foo\u2006and \r\fbar\nbaz'

Eles dão respectivamente 20, 1, 4, 18, como wc em um sistema FreeBSD em um locale en_GB.UTF-8.

    
por 27.10.2017 / 15:08