wc -m comando no raspberry pi adicionando um número extra

1

Estou escrevendo um programa no pi usando o comando wc -m para contar a quantidade de letras em uma string, no entanto, ele conta as letras, mas adiciona um extra. Isso é o que eu tenho atualmente.

echo "enter a word"
read var1
echo $var1 | wc -c

Quando eu digito a palavra, ela faz algo, no entanto, por exemplo, se eu digitar "test", ela produzirá 5. Por que ela está fazendo isso e existe uma correção? Obrigado

    
por Joe Dale 20.10.2014 / 14:24

1 resposta

1

Isso tem a ver com o comando que você está usando para canalizar a string para wc . O comando echo está deslizando em um caractere extra no final da sua string, test , um novo caractere de nova linha, \n .

Então, na verdade, você está contando isso: test\n . Você pode desativar esse comportamento com a opção -n para echo .

$ echo -n "test" | wc -c
4

Ou use um comando diferente para gerar sua string, como printf :

$ printf "%s" "test" | wc -c
4

Vendo o que está acontecendo

Você pode usar od para ver os caracteres reais que são getitng passados para o pipe da seguinte forma:

$ echo "test" | od -c
0000000   t   e   s   t  \n
0000005

$ echo -n "test" | od -c
0000000   t   e   s   t
0000004
    
por 20.10.2014 / 14:32