Couper les espaces blancs dans Bash
-
Utilisation de la commande
xargs
pour couper les espaces blancs dans Bash -
Utilisation de la commande
sed
pour couper les espaces blancs dans Bash -
Utilisation de la commande
awk
pour couper les espaces blancs dans Bash
Ce didacticiel montre la suppression des espaces blancs dans bash à l’aide de la commande xargs
, de la commande sed
et de la commande awk
.
Utilisation de la commande xargs
pour couper les espaces blancs dans Bash
xargs
signifie eXtended ARGuments
. xargs
lit l’entrée à partir de l’entrée standard et transforme l’entrée en arguments d’une commande. La commande xargs
peut également être utilisée pour supprimer les espaces blancs externes d’une chaîne dans bash.
L’exemple ci-dessous illustre l’utilisation de xargs
pour supprimer les espaces d’une chaîne dans bash.
La commande xargs
supprime les espaces au début et à la fin de la chaîne. Il ne supprime pas les espaces blancs internes dans la chaîne. Dans l’image ci-dessus, l’espace blanc interne entre ,
et world
n’a pas été supprimé tandis que les espaces au début et à la fin de la chaîne ont été supprimés.
Utilisation de la commande sed
pour couper les espaces blancs dans Bash
La commande sed
peut également être utilisée pour supprimer les espaces au début et à la fin d’une chaîne dans bash. Le script ci-dessous utilise la commande sed
pour supprimer les espaces de fin et de début d’une chaîne dans bash.
text=" Bash is Fun "
#print the original text
echo "$text"
#remove whitespaces
var=`echo $text | sed 's/ *$//g'`
echo "Hi there $var!"
L’exécution du script affiche la sortie suivante.
Bash is Fun
Hi there Bash is Fun!
Utilisation de la commande awk
pour couper les espaces blancs dans Bash
La commande awk
est également utilisée pour réduire les espaces d’un fichier ou d’une chaîne dans bash. En utilisant awk
, nous pouvons couper les espaces blancs au début d’une chaîne, et nous pouvons couper les espaces blancs à la fin de la chaîne, ou les deux.
Écrivons un script bash qui utilise awk
pour supprimer les espaces au début d’une chaîne. Ce (/^[ \t]+/,"")
, indique à la commande awk
de remplacer l’espace au début du texte par rien,""
.
text=" Bash is Fun "
#print the original text
echo "$text"
#print the new text after trimming the whitespace at the beginning
echo "$text" | awk '{gsub(/^[ \t]+/,""); print$0, "!"}'
Exécutons le script.
bash trim_start.sh
Le script produit la sortie suivante.
Bash is Fun
Bash is Fun !
À partir de la sortie, nous pouvons voir que l’espace au début de la chaîne a été supprimé.
Écrivons un script bash qui supprime les espaces à la fin de la chaîne.
text=" Bash is Fun "
#print the original text
echo "$text"
#print the new text after trimming the whitespace at the end
echo "$text" | awk '{gsub(/[ \t]+$/,""); print$0, "!"}'
Exécutons le script.
bash trim_end.sh
L’exécution du script produit la sortie suivante.
Bash is Fun
Bash is Fun !
Maintenant, écrivons un script bash qui supprime les espaces blancs au début et à la fin d’un script bash.
text=" Bash is Fun "
#print the original text
echo "$text"
#print the new text after trimming the whitespace at the start and end
echo "$text" | awk '{gsub(/^[ \t]+| [ \t]+$/,""); print$0, "!"}'
Exécutons le script.
bash trim.sh
Le script affiche la sortie suivante sur la sortie standard. Les espaces de début et de fin ont été supprimés de la chaîne.
Bash is Fun
Bash is Fun !