Aller au contenu

printf

Character Usage
%s String
%c Single character
%d Integers
%o Octal integers
%u unsigned integer
%x Hexadecimal integers (minuscule)
%X Hexadecimal integers (majuscule)
%f Floating point
%e floating point number in scientific notation (minuscule)
%E floating point number in scientific notation (majuscule)
%b String with backslash escape character
%% Percent sign
printf "\t %3s %-40s \n" "${index}." "${track}"

# tab
# chaine de 3 caractères alignés à droite
# chaine de 40 caractères alignés à gauche
      9.  Party!
     10.  Shooters

Modificateur de précision:

. (point) suivi d'un nombre spécifie le nombre de chiffres à afficher.

$ printf "Number: %.5d\n" 23

Number: 00023

avec une chaine:

printf "Nom: %.7s\n" Terminator
Nom: Termina

Afficher une ligne de tiret:

printf "%80s\n" " " | tr ' ' '-' 

------------------------------------------------------------------------------------------------

Afficher une chaine avec des accents:

title="France Inter 95.9 (Émissions-débats France)"

# https://unix.stackexchange.com/questions/609125/padding-unicode-strings-with-bashs-printf
bytes=$(printf '%s' "$title" | wc -c)
chars=$(printf '%s' "$title" | wc -m)
n=$((50+bytes-chars))

printf '%-${n}s' "${title}"

Dernière mise à jour: November 9, 2023