Cuando se ejecuta
echo abcd | wc -c
vuelve 5.
Pero la palabra abcdtiene solo 4 caracteres.
¿Se echoimprime algún carácter especial después de la palabra abcd?
¿Y puedo evitar echoimprimir eso?
text-processing
echo
wc
usuario78050
fuente
fuente

printfmejor queecho?wc -cno le dice cuántos caracteres tiene algo; solo dice cuántos bytes son.Respuestas:
echoimprimir nueva línea (\n) al final de la líneaCon algunas
echoimplementaciones, puede usar-n:y prueba:
Con algunos otros, necesita la
\csecuencia de escape:Portablemente, use
printf:(tenga en
wc -ccuenta que cuenta bytes, no caracteres (aunque en el caso deabcdque sean generalmente equivalentes). Usewc -mpara contar caracteres).fuente
echoimplementaciones (todas las que cumplen con Unix al menos), es solo laecho 'abcd\c'salidaabcd.echo -e 'abcd\c'enechoimplementaciones compatibles con Unix se generarían-e abcd.Si ejecuta
echosin la-nopció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. Entonceswcestá contando la nueva línea.fuente
De forma predeterminada,
echoimprimirá 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 dondeabcdse imprime).Puedes intentar agregar un
-nparámetroechopara deshabilitar el carácter de nueva línea final.fuente