Я использовал команду wc -c для подсчета количества символов, но в качестве примера я получил неправильное число, количество символов плюс один:
echo "k" | wc -c
это дает мне 2 символа
так почему не 1?
Я использовал команду wc -c для подсчета количества символов, но в качестве примера я получил неправильное число, количество символов плюс один:
echo "k" | wc -c
это дает мне 2 символа
так почему не 1?
Ответы:
Посмотрите на справочное сообщение для wc. -cОпция выводит количество символов. Команда echoвключает символ новой строки по умолчанию. Когда wcвидит новую строку, он считается как другой символ и, следовательно, дополнительный счет в вашем результате. Вы можете обойти это, используя одну из альтернатив, показанных ниже; -wподсчитывает количество слов и -lподсчитывает количество строк.
echo "k" | wc -w
echo "k" | wc -l
Вы можете передать вывод команды wcto, awkчтобы получить количество символов, исключая символы новой строки:
wc <filename> | awk '{print $3-$1}'
Вывод по умолчанию wcбез параметров выводит количество символов новой строки (от $ 1 до awk), количество слов и количество символов (от $ 3 до awk) в этом порядке.
echo -n "k" | wc -c. Это имеет смысл
printfчасто предпочитается раньше, echoкогда важна согласованность. Он не печатает новую строку, если не задан конкретный вопрос , т.е. printf "k" | wc -mдает 1количество напечатанных символов. Чтобы подсчитать символы в первой строке файла, можно сделать, например, $(($(head -1 file | wc -m)-1))(обернуть его, $(())чтобы выполнить арифметику оболочки, чтобы удалить счетчик новой строки) или, что еще лучше: использовать awk и do awk 'NR==1{print length}' file.
когда вы echo "k", echoкоманда добавляет символ новой строки к тому, что вы попросили его распечатать («k»). Вы можете использовать -nопцию, чтобы отключить это:
echo -n k | wc -c
1
Для просмотра этого невидимого персонажа, вы можете сбросить поток ти odили hd:
echo k | od -t c
0000000 k \n
echo k | hd
00000000 6b 0a |k.|
echo k | od -t a -A n
k nl
-cвариантом является количество байт, а не количество символов