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
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
.n
oùn
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 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
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.
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
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
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"
Lire des valeurs et les afficher
read -p "Entrez votre nom: " nom
printf "Bonjour, %s ! \n" "$nom"
Liens
- 12 exemples pour utiliser la commande cat sur Linux
- 6 exemples pour utiliser la commande tail sur Linux
- Comment utiliser la commande less sur Linux avec des exemples
- Utiliser la commande more sur Linux avec des exemples
- La commande cut de Linux : utilisation et exemples
- Comment utiliser la commande AWK avec des exemples
- Commande sed : utilisation et exemples
- 12 exemples de commandes grep sur Linux
- La commande TR : utilisations et exemples
- La commande echo : utilisations et exemples
- La commande sort Linux : utilisations et exemples
- La commande join Linux : utilisations et exemples
L’article Utiliser la commande printf sur Linux avec des exemples est apparu en premier sur malekal.com.
0 Commentaires