Remplacement de chaîne dans Bash

Nilesh Katuwal 30 janvier 2023
  1. Remplacer une sous-chaîne par une autre chaîne dans Bash
  2. Remplacer la chaîne entière égale à la sous-chaîne
  3. Remplacer la dernière sous-chaîne détectée dans une chaîne dans Bash
Remplacement de chaîne dans Bash

Bash nous permet de faire des appels à d’autres programmes, et en spécifiant les entrées et les sorties nécessaires, nous pouvons générer n’importe quel résultat. Cet article explique comment remplacer une sous-chaîne par une autre chaîne.

Remplacer une sous-chaîne par une autre chaîne dans Bash

La commande ci-dessous remplacera la première chaîne découverte qui correspond à une sous-chaîne à partir du premier caractère de la chaîne par une chaîne de remplacement.

${string/substring/replacement}

Voyons un exemple.

$ text="I am learning linux and linux"

$ reptext="bash"

$ echo "${text/linux/"$reptext"}''

Production :

I am learning bash and linux

Comme mentionné ci-dessus, la première chaîne linux est remplacée par bash, et l’autre est intacte.

Remplacer la chaîne entière égale à la sous-chaîne

Nous utilisons la commande ci-dessous pour remplacer la chaîne entière égale à la sous-chaîne par la chaîne de remplacement.

${string//substring/replacement}

Voyons un exemple :

$ text="I am learning linux and linux"

$ reptext="bash"

$ echo "${text//linux/"$reptext"}"

Production :

I am learning bash and bash

Maintenant, il y a deux barres obliques (//) au lieu d’une (/). Dans la sortie, nous pouvons voir que la commande ci-dessus a remplacé toutes les sous-chaînes égales à la chaîne de remplacement.

Remplacer la dernière sous-chaîne détectée dans une chaîne dans Bash

Nous utiliserons la commande ci-dessous pour remplacer la dernière sous-chaîne détectée dans une chaîne par une chaîne de remplacement.

${string/%substring/replacement}

Voyons un exemple :

$ text="I am learning linux and linux"

$ reptext="bash"

$ echo "${text/%linux/"$reptext"}"

Production :

I am learning linux and bash