Tengo un archivo llamado my_file.txt
cuyo contenido es solo la cadena Hello
. ¿Cómo podría redirigir su contenido al comando echo
? ?
Sé que tengo los comandos less
, cat
, more
… pero necesito hacerlo con echo
.
Intenté esto:
$ cat my_file.txt | echo
y también esto:
$ echo < my_file.txt
Pero en ambos casos aparece solo un espacio en blanco en la salida estándar, no el contenido de my_file.txt.
¿Cómo podría hacer eso?
Respuesta aceptada:
Puedes redirigir todo lo que quieras a echo
pero no hará nada con eso. echo
no lee su entrada estándar. Todo lo que hace es escribir en la salida estándar sus argumentos separados por un carácter de espacio y terminados por un carácter de nueva línea (y con algo de echo
implementaciones con algunas secuencias de escape en ellas expandidas y/o argumentos que comienzan con -
posiblemente tratados como opciones).
Si quieres echo
para mostrar el contenido de un archivo, debe pasar ese contenido como argumento a echo
. Algo como:
echo "$(cat my_file.txt)"
Tenga en cuenta que $(...)
elimina el carácter de nueva línea final s de la salida de ese cat
comando y echo
añade uno volver.
También tenga en cuenta que excepto con zsh
, no puede pasar caracteres NUL en los argumentos de un comando, por lo que normalmente no funcionará con archivos binarios. yash
también eliminará bytes que no formen parte de caracteres válidos.
Si la razón por la que quieres hacer eso es porque quieres echo
para expandir el n
, b
,