Aprende leyendo en orden

Salida con formato — printf

A diferencia de echo, printf no añade un salto de línea al final, así que escribes \n tú mismo. Aprende a insertar valores con %s/%d, alinear columnas con \t y crear archivos de varias líneas, todo práctico en una terminal del navegador.

En qué se diferencia printf de echo — sin salto de línea automático

printf imprime texto igual que echo, pero a diferencia de echo no añade un salto de línea al final automáticamente.

Escribes \n tú mismo dondequiera que necesites un salto de línea.

Como puedes construir la salida exactamente como la quieres, también va bien para crear archivos de varias líneas.

printf 'hello\n' imprime hello y un salto de línea.

Omite \n y la siguiente salida continúa en la misma línea.

Escríbelo como printf 'a\nb\nc\n' > file y creas directamente un archivo de 3 líneas.

Cómo gestionan el salto de línea echo y printf
echo hellohello + saltode línea (auto)printf 'hello\n'hello + saltode línea (\n explícito)
echo añade un salto de línea al final automáticamente; printf salta de línea solo donde escribes \n.
echo hello                       # hello + salto de línea automático
printf 'hello\n'                 # hello + el salto de línea que escribiste
printf 'a\nb\nc\n' > letters.txt   # crear un archivo de 3 líneas
cat letters.txt                  # las 3 líneas a / b / c
Cómo escribirloSalto de línea al finalResultado
echo 'hi'Se añade automáticamentehi + salto de línea
printf 'hi'No se añadesolo hi (sin salto de línea)
printf 'hi\n'No se añadehi + salto de línea porque escribiste \n

① Crea un archivo de 3 líneas con printf 'a\nb\nc\n' > letters.txt.

② Confirma con cat letters.txt que a, b y c salen en 3 líneas.

③ Ejecuta printf 'no newline' y confirma que no hay salto de línea al final, así que el siguiente prompt continúa en la misma línea.

④ Ejecuta printf 'with newline\n' y confirma que escribir \n añade un salto de línea. (Ejecútalo correctamente y aparecerá una explicación.)

Linux console
0 / 4 completado(s)
Loading Linux Terminal...

Insertar valores y alinear columnas — %s %d \t

Escribe %s (cadena) o %d (entero) en el formato, y los valores que enumeras después se insertan en esos sitios.

printf 'name=%s\n' alice imprime name=alice.

Va mejor que una simple concatenación con echo para encajar valores en una forma fija.

\t es una tabulación, que se usa cuando quieres alinear columnas.

El formato se aplica de forma repetida, una vez por cada conjunto de valores que sigue.

Imprime un encabezado y los datos cada uno en un formato separado por tabulaciones, como printf '%s\t%d\n' alice 30, y las columnas quedan alineadas.

Insertar con %s, alinear columnas con \t
alice en %sinsertar unacadena (hi=alice)42 en %dinsertar unentero (42)%s \t %salinear columnascon una tabulación
%s inserta una cadena, %d un entero y \t alinea columnas con una tabulación.
printf 'name=%s\n' alice        # name=alice
printf '%s\t%s\n' name age      # el encabezado, separado por tabulaciones
printf '%s\t%d\n' alice 30      # una fila de datos, alineada
SímboloSignificadoEjemplo → salida
%sInsertar una cadenaprintf '%s\n' hihi
%dInsertar un enteroprintf '%d\n' 4242
\tTabulación (alineación de columnas)printf 'a\tb\n'a + tabulación + b
\nSalto de líneaprintf 'x\n'x + salto de línea

① Ejecuta printf 'name=%s\n' alice y confirma que alice se inserta en el sitio del %s.

② Ejecuta printf '%s\t%s\n' name age y confirma que \t alinea las dos palabras separadas por una tabulación.

③ Después ejecuta printf '%s\t%d\n' alice 30 y confirma que las columnas del encabezado y de los datos quedan alineadas.

Linux console
0 / 3 completado(s)
Loading Linux Terminal...
QUIZ

Verificación de conocimientos

Responde cada pregunta una a una.

Pregunta 1¿En qué se diferencia printf de echo?

Pregunta 2¿Qué imprime printf 'name=%s\n' alice?

Pregunta 3¿Qué representa \t?