Skip directly to content

Script Tri aléatoire d'un fichier

Portrait de zozodesbois
on mer, 12/01/2011 - 23:20

Scrtipt, shell, syteme HMB ou Linux

Utilité

Ce script va lire le contenu d'un fichier et il va mélanger aléatoirement toutes les lignes.
Il est destiné à lire le contenu d'une Playlist au format m3u avec une nom de musique par ligne.

Le principe

Pour chaque lignes du fichier en entrée, un numéro aléatoire va être ajouté en début de ligne.
Un tri est fait sur ce numéro.
Et le numéro aléatoire est supprimé.

Exécution

Il faut copier le fichier sur le HMB sur une clé, ou sur le disque, là ou se trouve votre Playlist à traiter.

Sur le HMB

./Tri_aleatoire.sh Playlist.m3u > Nouvelle_Playlist.m3u

Sur Linux

Sur Ubuntu, il faut utiliser bash parce que la variable $RANDOM n'est pas définie en sh

bash Tri_aleatoire.sh Playlist.m3u > Nouvelle_Playlist.m3u

Le script

#! /bin/sh
#
# Tri les lignes d'un fichier de maniere aleatoire
#
# version 1.00 http://geekyhmb.fr.cr

if [ $# != 1 ]
then
  echo "utilisation: $0 <nom du fichier>"
  exit
fi

NFIC=${1}                    # nom du fichier en parametre

while read LIGNE             # pour chaque lignes
do
   echo "${RANDOM}]${LIGNE}" # met un numero aleatoire devant chaque lignes
done < ${NFIC}   | \
# tri sur le numero aleatoire
sort -t\] -k1,1n | \
# enleve le numero aleatoire
cut -d\] -f2-

 

Commentaires

Portrait de hellboy

Très bien, zozodesbois.
Maintenant que tu as créé la commande, il suffira de l'exécuter lorsque l'on appui sur une touche spécifique.

Portrait de zozodesbois

C'est un point de départ. Il faut savoir que sur le HMB pour un fichier de 15000 lignes ça met 2 bonnes minutes. Alors que sur mon PC c'est instantané...