Il s’agit d’un petit script, qui m’est bien utile, que j’avais pompé je ne sais où et que j’avais légèrement modifié à ma sauce.
Je vous le mets plus bas, à vous de le remodifier, améliorer à votre sauce.
echo -n "Entrez le chemin du fichier (ex. /home/user/.bash_history) : " read fichier doublons="$(cat $fichier | sort | uniq -d)" if [ "$doublons" != "" ]; then for line in $(seq 1 $(echo "$doublons" | wc -l)); do texteAsuppr=$(echo "$doublons" | sed $line!d) lignesAsuppr=$(grep -n "$texteAsuppr" $fichier | sed -e 1d -e 's/\([0-9]*\):.*/-e \1d/') sed $lignesAsuppr -i $fichier done fi echo "TERMINÉ !"echo
N’oubliez pas de faire un petit « chmod +x » sur le fichier pour le rendre éxecutable.

Bonjour Sima, je poursuis ma rando dans le labyrinthe de ton blog.
Pourquoi ne pas faire un simple :
sort -u -o fichier.txt fichier.txt
Je me demande.
++
Pour l’exemple sur « .bash_history » en effet la ligne de commande me suffirait, mais pour d’autre fichier, ce script me permet de supprimer les doublons en gardant l’ordre d’origine des lignes (garde la 1ère occurrence à sa place). alors que la ligne de commande supprime les doublons mais trie aussi le fichier par ordre alphabétique (l’ordre d’origine est perdu).
exemple:
Fichier de départ :
banane
pomme
cerise
pomme
kiwi
banane
mangue
raisin
kiwi
fraise
Résultat avec le script (ordre d’origine conservé) :
banane
pomme
cerise
kiwi
mangue
raisin
fraise
Résultat avec sort -u (trié alphabétiquement) :
banane
cerise
fraise
kiwi
mangue
pomme
raisin