Cuando se ejecuta
echo abcd | wc -c
vuelve 5
.
Pero la palabra abcd
tiene solo 4 caracteres.
¿Se echo
imprime algún carácter especial después de la palabra abcd
?
¿Y puedo evitar echo
imprimir eso?
text-processing
echo
wc
usuario78050
fuente
fuente
printf
mejor queecho
?wc -c
no le dice cuántos caracteres tiene algo; solo dice cuántos bytes son.Respuestas:
echo
imprimir nueva línea (\n
) al final de la líneaCon algunas
echo
implementaciones, puede usar-n
:y prueba:
Con algunos otros, necesita la
\c
secuencia de escape:Portablemente, use
printf
:(tenga en
wc -c
cuenta que cuenta bytes, no caracteres (aunque en el caso deabcd
que sean generalmente equivalentes). Usewc -m
para contar caracteres).fuente
echo
implementaciones (todas las que cumplen con Unix al menos), es solo laecho 'abcd\c'
salidaabcd
.echo -e 'abcd\c'
enecho
implementaciones compatibles con Unix se generarían-e abcd
.Si ejecuta
echo
sin la-n
opción, escribe un carácter de nueva línea después de los argumentos. De lo contrario, si escribióecho foo
, su próximo indicador de shell aparecerá a la derecha defoo
. Entonceswc
está contando la nueva línea.fuente
De forma predeterminada,
echo
imprimirá un carácter de nueva línea (\n
) después de la cadena (por lo que verá el indicador de shell en la siguiente línea en lugar de la misma línea dondeabcd
se imprime).Puedes intentar agregar un
-n
parámetroecho
para deshabilitar el carácter de nueva línea final.fuente