Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/06/2010, à 00:21

Hizoka

[resolu] supprimer espaces multiples en full bash

Bonsoir,

je me posais une question : Peut-on supprimer les espaces inutiles d'une variable en full bash (sans sed et co).

Par exemple :

test="Oui     -      Non"
echo ${test//  */ /}
=> Oui - Non

or cette commande renvoie :

=> Oui

alors apres on peut faire une boucle :

test="Oui     -      Non"
for i in {1..10}
do
test=${test//  / /}
done

mais bon c'est un peu galere pour quelques espaces lol

merci

Dernière modification par Hizoka (Le 07/06/2010, à 02:31)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#2 Le 07/06/2010, à 00:33

Watael

Re : [resolu] supprimer espaces multiples en full bash

un contournement

test="Oui     -      Non"
echo "${test// *[^[:alnum:]]/ - }"

ou simplement

test=$(echo $test)

$test sans guillemets

Edit: cela semble fonctionner

echo "${test//+( )/ }"

Dernière modification par Watael (Le 07/06/2010, à 01:11)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 07/06/2010, à 01:27

Hizoka

Re : [resolu] supprimer espaces multiples en full bash

tu peux m'expliquer un peu cette derniere commande stp ?

EDIT : bon bah ça passe pas dans mon script... par contre le coup du echo, lui fonctionne smile

merci

Dernière modification par Hizoka (Le 07/06/2010, à 01:33)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#4 Le 07/06/2010, à 01:42

Watael

Re : [resolu] supprimer espaces multiples en full bash

la description faite dans le man bash /Motifs génériques (/Pattern Matching), est explicite

Si l’option extglob d’interpréteur est activée par la commande interne shopt plusieurs opérateurs de correspondance étendue sont reconnus.
Dans  la  description  suivante,  une  liste-motif  est  une  liste  d’un  ou plusieurs motifs séparés par des |.

je te laisse lire le paragraphe.

Edit: donc dans un script, il faudra ajouter

shopt -s extglob

Dernière modification par Watael (Le 07/06/2010, à 01:45)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 07/06/2010, à 02:31

Hizoka

Re : [resolu] supprimer espaces multiples en full bash

bon bah resolu alors smile

merci.


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne