Я пытаюсь подсчитать количество слов в строке с помощью команды 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
Что я делаю не так? Пожалуйста, помогите мне решить это. Буду очень благодарна. Спасибо.
Принятие Вас означает счетчик символов не подсчет слов (который был бы 1), проблема - то, что echo
добавляет символ новой строки. Можно или использовать
len=`echo -n $str | wc -c`
(эти -n
, переключатель подавляет новую строку), или - лучше - просто используют удар #
оператор
len=${#str}
переменной длины От man wc
:
-c, --bytes
print the byte counts
-w, --words
print the word counts
Так, необходимо использовать wc -w
вместо wc -c
.