Fonctionnement de foreach et awk et set
Résolu
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
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:
- Bash foreach
- Bingo bash - Télécharger - Divers Jeux
- Bash list ✓ - Forum Shell
- Bash permission non accordée - Forum Shell
- Bash pause ✓ - Forum Shell
- Bash addition - Forum Programmation
1 réponse
En admettant que la syntaxe soit correct :
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.
Stocker dans la variable name le nom du fichier $f et y ajouter à la suite ".wav".
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 :
Pour le reste je t'invite à lire un cours de csh et d'awk.
Bonne chance
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