Fonctionnement de foreach et awk et set

Résolu/Fermé
koummich - Modifié par koummich le 31/03/2013 à 17:05
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 1 avril 2013 à 00:22
Bonjour,
j'ai un script en csh à comprendre je vais savoir le fonctionnemment de chaque commande
foreach s ('cat List/speakers')
mkdir -p $MFCCDIR/train/$s
end
set name = 'basename $f .wav'
awk -F / '{ i=NF-1; printf("%s\n",$i); }' List/all_test_wav | sort -u > List/speakers_test
Merci d'avance
A voir également:

1 réponse

mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
1 avril 2013 à 00:22
En admettant que la syntaxe soit correct :

foreach s ('cat List/speakers') 
  mkdir -p $MFCCDIR/train/$s 
end 


Pour chaque ligne contenu dans List/speaker (et enregistrée) dans s, créer un répertoire dont le chemin est égal à la valeur stocké dans la variable MFCCDIR, suivi de / suivi de train, suivi du contenu de la variable s.

set name = 'basename $f .wav' 


Stocker dans la variable name le nom du fichier $f et y ajouter à la suite ".wav".

awk -F / '{ i=NF-1; printf("%s\n",$i); }' List/all_test_wav | sort -u > List/speakers_test 


Pour chaque ligne du fichier List/all_test_wav compter le nombre de champs (séparés par des tabulations ou des espaces). Cette suite de valeur est ensuite triée par ordre de croissants et les valeurs répétées ne sont conservées qu'une fois. Cette suite ainsi filtrée et triée est écrite dans le fichier List/speakers_test .

Pour plus de détails tu peux regarde le man de chaque commande mise en jeu, en tapant dans un terminal les commandes shell suivantes :

man mkdir
man awk
man sort


Pour le reste je t'invite à lire un cours de csh et d'awk.

Bonne chance
0