LINUX.ORG.RU
ФорумAdmin

WC

 


1

1

Привет всем!

Почему вывод показывает 40:

echo 1f4d3f81-544c-ffc2-a798-074b23fb42db147|wc -m

Хотя символов - 39

?

Потому что echo печатает перевод строки после вывода

$ echo 1f4d3f81-544c-ffc2-a798-074b23fb42db147| hexdump -c
0000000   1   f   4   d   3   f   8   1   -   5   4   4   c   -   f   f
0000010   c   2   -   a   7   9   8   -   0   7   4   b   2   3   f   b
0000020   4   2   d   b   1   4   7  \n                                
0000028

Без него будет 39

$ echo -n 1f4d3f81-544c-ffc2-a798-074b23fb42db147|wc -m
39
grazor ★★
()
Ответ на: комментарий от anc

-n у echo это нестандартное расширение, использовать его нужно с осторожностью. В стандарте POSIX ничего про -n, насколько я понимаю, нет.

anarquista ★★★★★
()
Ответ на: комментарий от anarquista

В стандарте POSIX ничего про -n, насколько я понимаю, нет.

Вообще-то есть. Но размытое определение, я так понял, что на -n POSIX-допустимо подвесить функционал

A string to be written to standard output. If the first operand is -n, or if any of the operands contain a backslash character, the results are implementation-defined.

С бэкслешами, это что-то вроде нынешнего:

echo -e "aaa\c" | wc -m
dmitry237 ★★★★★
()
Последнее исправление: dmitry237 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.