[UNIX] Suppression doublons dans une variable
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
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
en
bash :
Code:
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
Une autre solution?
Code:
var=$(echo $(echo -e ${var// /\\n} | sort -u))
:D
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