bash - неверный ответ по команде подсчета слов

Я пытаюсь подсчитать количество слов в строке с помощью команды wc. Но это дает мне другой ответ. Увеличивает количество слов на 1.

Это код:

echo Enter a string:
read str
len=`echo $str | wc -c`
echo you have entered: $str
echo and the word count: $len

Вывод выглядит так:

Enter a string:
robin
you have entered: robin
and word count: 6

Что я делаю не так? Пожалуйста, помогите мне решить это. Буду очень благодарна. Спасибо.

2
задан 26 April 2014 в 05:08

2 ответа

Принятие Вас означает счетчик символов не подсчет слов (который был бы 1), проблема - то, что echo добавляет символ новой строки. Можно или использовать

len=`echo -n $str | wc -c`

(эти -n, переключатель подавляет новую строку), или - лучше - просто используют удар # оператор

len=${#str}
переменной длины
0
ответ дан 26 April 2014 в 05:08

От man wc:

-c, --bytes
    print the byte counts

-w, --words
    print the word counts

Так, необходимо использовать wc -w вместо wc -c.

0
ответ дан 26 April 2014 в 05:08

Другие вопросы по тегам:

Похожие вопросы: