Si ha estado usando el shell Bash durante una cantidad de tiempo decente, probablemente sepa cómo imprimir cadenas en la terminal de Linux usando el comando echo. Sin embargo, el comando printf facilita mucho la impresión de texto con un formato específico.

Hoy aprenderemos cómo hacer uso de la función printf para mejorar nuestras habilidades de scripting Bash.

¿Qué es la función Bash printf?

Como sugiere el nombre, printf es una función que imprime cadenas de texto formateadas. Eso significa que puede escribir una estructura de cadena (el formato) y luego completarla con valores (los argumentos).

Si está familiarizado con los lenguajes de programación C / C ++, es posible que ya sepa cómo funciona printf. Printf en el shell Bash es muy similar, pero tiene algunas pequeñas diferencias.

Aprende más: Los mejores sitios para comenzar con la programación en C ++

Cómo usar printf en Bash Shell

La sintaxis básica de printf es:

formato printf [argumento]

Printf imprimirá el formato cadena mientras se implementa

instagram viewer
escapa (\) y directivas (%) mediante el uso de especificados argumentos. Tenga en cuenta el resultado del siguiente comando:

$ printf "Hola,% s" mundo
Hola Mundo

Printf tomó el mundo argumento y reemplazó el %s carácter en la cadena especificada con él.

Puede notar que después de la salida, Bash no crea una nueva línea para usted. A diferencia del comando echo, printf no asumirá que desea una nueva línea después de que se imprima la salida. Por lo tanto, deberá usar el carácter de nueva línea \norte en cada caso.

Para imprimir una cadena y luego pasar a una nueva línea, escriba printf "Hola, mundo \ n".

Hola Mundo

Es importante tener en cuenta que printf intentará reutilizar el formato para todos sus argumentos. Puede usar esto para su ventaja, pero si no tiene cuidado, puede terminar con resultados como este:

$ printf "Mi nombre es% s" Jordan Gloor
Mi nombre es Jordan Mi nombre es Gloor

También debe tener en cuenta que si falta un argumento, printf interpretará las directivas como 0 (para un número) y nulo (para una cuerda).

$ printf "Hola,% s".
Hola, .

Ahora que sabe cómo funciona el script Bash con printf en Linux, está listo para comenzar a usarlo en sus comandos.

Ejemplos de printf de Bash de Linux

Printf incluye muchos especificadores de formato que puede utilizar en sus scripts. Pero hoy solo cubriremos algunos comunes para la función.

1. Dar formato a la salida con una cadena

Para formatear la salida con cadenas de texto, use el %s directiva.

$ printf "% s es uno de los% s en línea más grandes". MUO "publicaciones tecnológicas"
MUO es una de las publicaciones de tecnología en línea más grandes.

2. Dar formato a la cadena de salida con decimales

Para formatear una cadena con un número entero, puede usar el %D directiva para un decimal con signo.

$ printf "MUO se fundó en% d". 2007
MUO se fundó en 2007.

Tenga en cuenta que si desea utilizar un decimal sin signo en la salida, tendrá que utilizar el % u directiva en su lugar.

Relacionada: ¿Qué significa "Bash" en Linux?

3. Funciones matemáticas de salida mediante printf

Formatear funciones matemáticas con el comando printf es fácil. Simplemente coloque su expresión entre paréntesis dobles como lo hace normalmente en Bash, y especifique la expresión en la lista de argumentos.

$ printf "1 + 1 es% d" $ ((1 + 1))
1 + 1 es 2

4. Dar formato a números hexadecimales

Si necesita formatear un número hexadecimal, use %X para minúsculas y %X para mayúsculas.

$ printf% X 1000
3E8C

5. Imprimir fecha y hora

Para imprimir la fecha y hora actuales, puede combinar printf con el fecha comando y pasar las siguientes directivas.

$ printf "% (% m-% d-% Y% H:% M:% S) T" $ (fecha +% s)
03-26-2021 15:27:57

Puede ver los especificadores de formato para mes, día, año, hora, minuto y segundo en la salida mencionada anteriormente.

6. Dar formato a cadenas con caracteres Unicode

Para imprimir caracteres Unicode con printf, utilice el \ u escape para Unicode de 16 bits y \ U para Unicode de 32 bits.

Por ejemplo, puede imprimir el derechos de autor símbolo con el siguiente comando:

$ printf "\ u00A9"
©

7. Agregar espacio a la salida

Puede formatear sus cadenas con espaciado definiendo, antes del especificador de directiva, un número mínimo de caracteres impresos. Los caracteres no utilizados se completarán con espacios.

Por ejemplo, escribiendo printf "% s:% 5d \ n" "Valor 1" 25 "Valor 2" 120 dará salida:

Valor 1:25
Valor 2: 120

El % 5d El especificador de formato en la salida indica que la cadena formateada contendrá un mínimo de cinco caracteres. Dado que 25 tiene solo dos dígitos, se agregan espacios a los caracteres restantes.

Si pasa un número negativo como ancho, la directiva se justificará a la izquierda en lugar de a la derecha.

$ printf "% -10s:% d" "Círculos" 25 "Cuadros" 120
Círculos: 25 Cajas: 120

Si desea hacer que el ancho sea variable, puede pasar un asterisco en lugar de un número, y printf usará el siguiente número que encuentre en la lista de argumentos.

$ printf "% * s:% d" -10 "Círculos" 25-10 "Cuadros" 120
Círculos: 25 Cajas: 120

Relacionada: Todo lo que necesita saber sobre Bash For Loops en Linux

Aprendiendo el comando printf de Linux

Con el comando printf en su cinturón de herramientas de scripting Bash, está listo para comenzar a imprimir cadenas complejas y variadas en su terminal. A medida que desarrolla sus scripts Bash, es importante asegurarse de que está trabajando en el entorno más productivo posible. Esto no solo mejorará sus habilidades en la línea de comandos, sino que también mejorará su flujo de trabajo en general.

Correo electrónico
10 mejores distribuciones de Linux para desarrolladores

¿Listo para comenzar a desarrollar en un sistema operativo de código abierto? Aquí están las mejores distribuciones de Linux para programación.

Leer siguiente

Temas relacionados
  • Linux
  • Shell de Bash de Linux
  • Comandos de Linux
Sobre el Autor
Jordan Gloor (32 Artículos publicados)

Jordan es un tutor y periodista apasionado por hacer que Linux sea accesible y sin estrés para todos. Tiene una licenciatura en inglés y le gusta el té caliente. Durante las estaciones cálidas, le gusta andar en bicicleta por las colinas de Ozarks, donde vive.

Más de Jordan Gloor

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Un paso más…!

Confirme su dirección de correo electrónico en el correo electrónico que le acabamos de enviar.

.