Question 1 : écrire avec la commande unix find un script qui recherche dans tous les fichiers *.txt de l'arborescence si le mot clé "aba" apparait dans les noms des fichiers. find . -name "*aba*.txt" Question 1bis : écrire avec la commande unix find un script qui recherche dans tous les fichiers *.txt de l'arborescence si le mot clé "aba" apparait. find . -name "*.txt" -exec grep -m 1 "aba" {} \; Note : ne pas oublier le -m 1 pour s'arreter à la première occurence du motif Question 2 : écrire un script qui va afficher le nombre de fichers *.txt de l'arborescence qui contiennent le mot clé "aba" find . -name "*.txt" -exec grep -m 1 "aba" {} \; | wc -l Note : ne pas oublier le -m 1 pour s'arreter à la première occurence du motif Question 3 : écrire un script qui va afficher la somme de toutes les tailles de tous les fichiers présents dans l'arborescence depuis ~. du -sh ~ plus compliqué?: #!/bin/bash set `find ~ -exec stat -c%s {} \;` size=0 while [ $# -ne 0 ] do size=`expr $1 + $size` shift done echo $size Autre solution : find ~ -iname "*" -exec stat --format="%s" \{\} \; | awk '{somme+=$1} END {print somme}' Note : la commande stat avec le format %s permet de recuperer la taille d'un fichier. On peut aussi faire -c%s. Ici on utilise les facilités de awk pour sommer les tailles produite par la commande stat. Question 4 : écrire un script qui prend en paramètre une chaîne de caractère et transforme toutes les voyelles minuscules en voyelles majuscules correspondantes, les autres caractères sont inchangés. Si vous écrivez une solution avec la commande tr, veuillez donner une deuxime solution. Première solution : #!/bin/bash for i in `seq 0 $[${#1} - 1]` do case ${1:i:1} in a) echo -n A ;; e) echo -n E ;; [...] *) echo -n ${1:i:1} esac done echo Deuxième solution : echo "abCdEfio" | sed 's/[aeiouy]/\u&/g' produit : AbCdEfIO Troisième solution : #!/bin/bash for i in `seq 0 $[${#1} - 1]` do echo "${1:i:1}" | sed 's/[aeiouy]/\u&/' done Attention : enmploi de \u pour passer en majuscule le groupe capté par & Quatrième solution : #!/bin/bash for (( i=0;i<${#1};i=$((i+1)) ))‏ do car=${1:$i:1} case ${car} in a) echo -n A ;; e) echo -n E ;; [...] *) echo -n ${1:i:1} esac done echo