Exercice 1

Ecrire un script qui pour toutes les extensions présentes dans le dossier, crée un dossier par extension et déplace tous les fichiers ayant cette extension dans ce dossier.

DICTIONNARY

Un dictionnaire ou tableau associatif est un ensemble de clefs associées à des valeurs. Les clefs et les valeurs peuvent être des entiers ou des chaines de caractères. Il s'utilise en commençant par le déclarer :

declare -A tab

Pour définir une valeur :

tab[clef]=valeur
n=4
tab[$n]=bonjour
tab[0]=$(( 4 + 5 ))

Pour lire une valeur :

echo ${tab[txt]}
echo $(( tab[txt] ))

Pour parcourir toutes les clefs :

for clef in ${!tab[@]}
do
    echo $clef
done

Exercice 2

Ecrire un script qui crée un dictionnaire où l'entrée de la clef a vaut 2 et qui affiche la valeur de l'entrée a.

Exercice 3

Ecrire un script qui crée un dictionnaire sur les clefs de 1 à 10 avec des nombres au hasard entre 0 et 100 et qui génère un fichier .csv contenant les entrées de ce dictionnaire sous la forme clef,valeur par ligne.

Exercice 4

Ecrire un script qui compte le nombre de fichiers du dossier en paramètre dont le nom contient un a et le nombre de fichiers dont le nom contient un b à l'aide d'un dictionnaire.

Exercice 5

Ecrire un script qui pour toutes les extensions présentes dans le dossier en paramètre, compte le nombre de fois qu'elles apparaissent.

FUNCTION

On introduit une nouvelle fonction ainsi :

function ma_fonction {
    # ses paramètres sont $1 $2 ...
    # (qui sont différents des paramètres du script)
    # au lieu de return on fait echo
}

Exercice 6

Ecrire un script qui calcule le carré d'un nombre fourni en paramètre en définissant une fonction.

Exercice 7

Ecrire un script qui calcule la factorielle d'un nombre fourni en paramètre en définissant une fonction récursive.

Exercice 8

Ecrire un script qui compte le nombre de fichiers contenus dans le dossier en paramètres et dans ses sous-dossiers.

PARCOURIR UN TEXTE

Si le résultat d'une commande est un texte avec des retours à la ligne, on peut parcourir toutes les lignes à l'aide d'un for.

file=$(cat test.txt)

for line in "$file"
do
    echo "$line"
done

Exercice 9

Ecrire un script qui à partir d'un fichier en paramètre, crée un nouveau fichier où les lignes entre les balises <hide> et </hide> sont supprimées.

Tester le script sur le fichier test.txt contenant le texte suivant :

salut ça va ?
blabla

<hide>
blablablabla
</hide>

blablablabla
jkjk
blablablabla

<hide>
blablablabla
</hide>

fsdfsd