PDA

Visualizza la versione completa : [BASH] rimuovere parole duplicate


nifriz
07-04-2008, 14:13
Questo per i file, prova a riadattarlo :zizi:

for token in $files
do
counter=`expr $counter + 1`
if [ $counter -gt 1 -a -f $token ]
then
esito=`rm $token`
if [ "x$esito" = "x" ]
then
echo cancellato il file $token
else
echo $esito
fi
fi
done

Mutato
07-04-2008, 18:59
Z:~$ export X="A A A S F R E E E D C"
Z:~$ for i in $X; do echo $i; done | sort | uniq
A
C
D
E
F
R
S
Z:~$


oppure



Z:~$ echo $X | tr "\040" "\n" | sort | uniq
A
C
D
E
F
R
S
Z:~$


Ovviamente SORT li mette in ordine alfabetico, se vuoi mantenere l'ordine originale toglilo dalla pipeline, anche se con elenchi molto lunghi UNIQ e` meno performante se lavora con liste non ordinate.

Loading