Bonjour

Je vous remonte une discussion sur le forum LINUX du 20/02 pour un problème de suppression de doublon dans une variable.

La discussion originale qui correspond pile-poil à mon problème est la suivante

Citation Envoyé par havany Voir le message
Bonjour, Je travaille actuellement sur un script shell assez long, et je suis un peu bloqué sur un problème. Je me retrouve avec une variable contenant une liste de mots dont certains sont en doubles.
Je voudrais tout simplement supprimer les doubles de cette variable. Concrètement :
j'ai ceci :
# echo $var
AA AA BB CC CC DD EE FF FF
et après traitement je voudrais avoir :

# echo $var AA BB CC DD EE FF

Là où ça se complique c'est que je voudrais éviter d'envoyer la variable dans un fichier, pour la traiter. De plus le nombre de mots dans la variable est totalement aléatoire, et l'ordre alphabétique n'est pas garanti non plus. (Je sais ça fait beaucoup de contraintes, mais si c'est impossible dites le moi et je me résignerai à faire avec un fichier)
Je vous remercie d'avance.
Sur le forum LINUX, 2 solutions qui fonctionnent toutes deux ont été proposées.

Citation Envoyé par N_BaH Voir le message
en bash :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
var="AA AA BB CC CC DD EE FF FF"
var=$(tr ' ' '\n' <<<$var | sort -u | tr '\n' ' ')
echo $var
AA BB CC DD EE FF
...
?

Citation Envoyé par jmelyn Voir le message
Une autre solution?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
var=$(echo $(echo -e ${var// /\\n} | sort -u))
Malheureusement, sous UNIX - SOLARIS 10, ca ne marche pas.

Que faudrait-il changer pour obtenir la même chose que sous LINUX et avoir ainsi un script portable (je travaille sur les deux environnements) ?

D'avance merci