User Tools

Site Tools


informatique:linux:programmation_shell

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
informatique:linux:programmation_shell [2022/06/08 08:49] – [Ressources] pteuinformatique:linux:programmation_shell [2022/10/17 21:28] – [trim] pteu
Line 944: Line 944:
 </code> </code>
  
 +=====trim (suppression des espaces dans une chaîne)=====
 +
 +bash ne possède pas de fonction prédéfinie pour "trimmer" les chaînes de caractère. **trim** est une fonction, habituellement incluse dans les langages de programmation, permettant de supprimer les espaces parasites avant et après une chaîne : par exemple " cette chaîne" ou " celle-ci       ".
 +
 +Pour faire cette office il existe plusieurs possibilités d'afficher les cellules du tableau suivant sans les espaces :
 +<code bash>
 +arr=('foo bar' 'test@domain.com ' \
 +' test@domain.com ' '    test@domain.com         ')
 +</code>
 +
 +  * en utilisant la substitution de caractère dans les variables, en activant le //globbing étendu// (des motifs d'expressions régulières prédéfinis) :
 +<code bash>
 +shopt -s extglob                     # activation des extended glob
 +# (pour reconnaître [[:blank:]] qui définit l'ensemble des espaces et tabulations)
 +arr=( "${arr[@]/#+([[:blank:]])/}" ) # suppression des espaces de début de chaîne
 +arr=( "${arr[@]/%+([[:blank:]])/}" ) # suppression des espaces de fin de chaîne
 +</code>
 +
 +  * avec ''mapfile'' et ''set --''
 +<code bash>
 +function trim() {
 + mapfile -t t_input<<<"$*"    # place chaque paramètre dans une cellule du tableau (un par ligne)
 + [[ ${#t_input[@]} -eq 0 ]] && { echo "Aucun texte à afficher"; exit 1; }
 + set -- ${t_input[@]}         # affecte chaque case du tableau à un paramètre ($1, $2, etc)
 + printf '%s\n' "$*"           # affiche chaque paramètre suivi d'un saut de ligne
 +}
 +trim "${arr[@]}"
 +</code>
 ====== Ressources ====== ====== Ressources ======
  
informatique/linux/programmation_shell.txt · Last modified: 2023/10/02 13:35 by pteu