Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Utiliser la commande printf sur Linux avec des exemples

La commande printf est un outil puissant sous Linux permettant d’afficher du texte formaté dans le terminal. Inspirée de la fonction printf du langage C, elle offre un meilleur contrôle sur l’affichage des données par rapport à la commande echo. Grâce à ses spécificateurs de format, elle permet de gérer l’affichage des chaînes de caractères, des nombres entiers et flottants, ainsi que des représentations hexadécimales et octales.

Voici un tutoriel complet pour apprendre à utiliser printf sur Linux, avec des explications claires et des exemples pratiques. Que vous soyez débutant ou utilisateur avancé, maîtriser printf vous aidera à rendre vos scripts shell plus efficaces et lisibles

Utiliser la commande printf sur Linux avec des exemples

Quelle est la syntaxe de la commande printf

La commande printf sous Linux est utilisée pour afficher du texte formaté dans le terminal. Elle est plus puissante et flexible que echo, car elle permet le formatage des sorties, similaire à la fonction printf en C.

Voici la syntaxe à utiliser :

printf "FORMAT" [ARGUMENTS…]

Le FORMAT contient des spécificateurs de formatage, et les ARGUMENTS sont les valeurs correspondantes.

Code Description
\n Nouvelle ligne
\t Tabulation
\e[31m Texte rouge (ANSI escape)
\e[32m Texte vert
\e[0m Réinitialisation des couleurs

Les spécificateurs de format

Les spécificateurs de format sont des codes utilisés avec la commande printf pour définir la manière dont les données doivent être affichées. Ils commencent toujours par le symbole % et sont suivis d’une lettre indiquant le type de donnée à afficher.

Spécificateur Description Exemple Sortie
%s Affiche une chaîne de caractères. printf “%s\n” “Bonjour” Bonjour
%c Affiche un seul caractère. printf “%c\n” “A” A
%d Affiche un nombre entier signé (décimal). printf “%d\n” 42 42
%i Identique à %d (nombre entier signé). printf “%i\n” 42 42
%u Affiche un nombre entier non signé (décimal). printf “%u\n” 42 42
%o Affiche un nombre entier en octal. printf “%o\n” 255 377
%x Affiche un nombre entier en hexadécimal (lettres minuscules). printf “%x\n” 255 ff
%X Affiche un nombre entier en hexadécimal (lettres majuscules). printf “%X\n” 255 FF
%f Affiche un nombre flottant (décimal, 6 décimales par défaut). printf “%f\n” 3.14 3.140000
%.nf Affiche un nombre flottant avec n décimales. printf “%.2f\n” 3.14159 3.14
%e Affiche un nombre flottant en notation exponentielle (lettres minuscules). printf “%e\n” 1234.5678 1.234568e+03
%E Affiche un nombre flottant en notation exponentielle (lettres majuscules). printf “%E\n” 1234.5678 1.234568E+03
%g Affiche un nombre flottant en notation scientifique ou normale, selon la valeur. printf “%g\n” 0.00001234 1.234e-05
%G Identique à %g, mais avec des lettres majuscules si nécessaire. printf “%G\n” 0.00001234 1.234E-05
%% Affiche un symbole %. printf “Affichage de %%\n” Affichage de %

Remarques :

  • %f affiche toujours 6 décimales par défaut.
  • %.nf permet de contrôler le nombre de décimales affichées.
  • %g et %G choisissent automatiquement la meilleure notation.
  • Largeur minimale du champ : Vous pouvez spécifier une largeur minimale pour le champ en ajoutant un nombre entre le % et le spécificateur. Par exemple, %5d affichera un entier avec au moins 5 caractères, en ajoutant des espaces à gauche si nécessaire.
  • Précision : Pour les nombres à virgule flottante, vous pouvez spécifier le nombre de chiffres après la virgule en utilisant .nn est le nombre de chiffres souhaité. Par exemple, %.2f affichera un nombre avec deux chiffres après la virgule.

Les flags dans printf sous Linux

Les flags dans printf sont des options qui modifient l’affichage des valeurs formatées. Ils sont placés immédiatement après le % et avant le spécificateur de format (d, s, f, etc.).

Flag Description
Aligne le texte à gauche dans le champ spécifié.
+ Affiche toujours un signe (+ ou -) pour les nombres.
0 Remplit avec des zéros au lieu d’espaces (uniquement pour les nombres).
# Utilisé avec %o, %x, ou %X pour afficher le préfixe (0 pour octal, 0x pour hexadécimal).
(espace) Ajoute un espace devant les nombres positifs (utile pour l’alignement).

Comment utiliser la commande printf avec des exemples

Affichage simple

Voici un exemple d’utilisation de la commande printf pour générer un texte avec un retour à la ligne :

printf "Bonjour, monde !\n"

Remarque : printf n’ajoute pas automatiquement un saut de ligne (\n), contrairement à echo.

Utilisation basique de printf sur Linux

Utilisation de spécificateurs de format

Dans cet exemple, on utilise les spécificateurs de format pour spécifier comment afficher le texte :

printf "Nom: %s, Age: %d ans\n" "Alice" 25

On obtient la sortie suivante :

Nom: Alice, Age: 25 ans
Utilisation de spécificateurs de format la commande printf

Les spécificateurs de conversion

Les spécificateurs de conversion indiquent à printf comment formater et afficher les arguments fournis. Chaque spécificateur commence par un % suivi d’un ou plusieurs caractères déterminant le type de conversion.

Par exemple pour afficher le nombre flottant.
Attention, veuillez à utiliser la virgule et non le point comme séparateur.

printf "Pi approximatif : %.2f\n" 3,141592

Sortie :

Pi approximatif : 3,14

Explication : %.2f limite l’affichage à 2 décimales.

Formatage des nombres flottants avec printf

Voici un autre exemple pour afficher un nombre entier non signé en notation hexadécimale (base 16).

printf "Hex minuscule : %x\n" 255
printf "Hex majuscule : %X\n" 255

Ce qui donne :

Hex minuscule : ff
Hex majuscule : FF

Pour convertir un nombre entier en notation hexadécimale :

printf "%08x\n" "2048"

La sortie :

00000800
Spécificateur hexadécimal de la commande printf
Commande Explication Sortie
printf “%x\n” 255 Nombre 255 en hexadécimal (sans zéro padding) ff
printf “%04x\n” 255 Même conversion avec une largeur de 4, remplie de zéros à gauche 00ff
printf “%08x\n” 1024 Nombre 1024 en hexadécimal, largeur 8 400

Ou encore pour afficher le caractère à partir de son code ASCII d’un caractère fourni.

printf "Caractère : %c\n" 65

Soit donc :

Caractère : A

Alignement et largeur des champs

La commande peut aussi être utilisé pour aligner des champs avec un espacement de votre choix.
Par exemple :

printf "|%-10s|%10d|\n" "Alice" 25
printf "|%-10s|%10d|\n" "Bob" 30

Ce qui donne :

|Alice | 25|
|Bob | 30|

Explications :

  • %-10s : Alignement à gauche sur 10 caractères
  • %10d : Alignement à droite sur 10 caractères
Utiliser la commande printf pour aligner des champs

Afficher des texte en couleurs

Vous pouvez aussi afficher du texte en couleurs très facilement.
Par exemple pour avoir du texte en rouge :

printf "\e[31mTexte en rouge\e[0m\n"
Afficher des texte en couleurs avec printf

Lire des valeurs et les afficher

read -p "Entrez votre nom: " nom
printf "Bonjour, %s ! \n" "$nom"
Lire des valeurs et les afficher de la commande printf

L’article Utiliser la commande printf sur Linux avec des exemples est apparu en premier sur malekal.com.

Enregistrer un commentaire

0 Commentaires