Advertisement
anthonimes

TP3---EXOS6-9

Nov 6th, 2020 (edited)
414
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.05 KB | None | 0 0
  1. #!/bin/bash
  2. # TP4 --- Exercice 1
  3.  
  4. # $# contient le nombre d'arguments d'un script bash
  5. # les arguments sont $1, $2, $3, ... $9, puis ${10}
  6. case $# in
  7.     1) echo "Un seul argument :"; seq $1;;
  8.     2) seq $1 $2;;
  9.     3) seq $1 $2 $3;;
  10.     *) echo "Le script $0 doit avoir entre 1 et 3 arguments"; exit 1;;
  11. esac
  12.  
  13.  
  14. #! /bin/bash
  15. # TP3 --- Exercice 8
  16. rep="data/haddock"
  17. for nom in $(ls $rep); do
  18.     echo "fichier : $nom"
  19.     echo "nombre de lignes : $( cat "$rep/$nom" | wc -l)"
  20.     echo "nombre de caracteres : $(wc -c < $rep/$nom)"
  21.     # pour le proprietaire, il faut parser ls -l
  22.     prop=$(ls -l $rep/$nom | tr -s " " | cut -d " " -f3)
  23.     echo "propriétaire : $prop"
  24.     # Exercice 9
  25.     echo "Le proprietaire a les droits : "
  26.     droits=$(ls -l "$rep/$nom" | tr -s ' ' | cut -d' ' -f1)
  27.     # cut -ci "coupe" le ième caractère
  28.     if [ $(echo $droits | cut -c2) != "-" ]; then
  29.         echo "lire "
  30.     fi
  31.     if [ $(echo $droits | cut -c3) != "-" ]; then
  32.         echo "ecrire"
  33.     fi
  34.     if [ $(echo $droits | cut -c4) != "-" ]; then
  35.         echo "executer"
  36.     fi
  37. done
  38.  
  39. #!/bin/bash
  40. # TP3 --- Exercice 7
  41. fichier="/etc/passwd"
  42. taille=$(cat $fichier | wc -l)
  43. #taille=$(wc -l < $fichier)
  44. # boucle de 1 au nombre de ligne du fichier
  45. for i in $(seq $taille); do
  46.     # afficher la ligne uniquement si i est pair
  47.     # NE PAS OUBLIER de préciser les opérations arithmétiques
  48.     #if [[ $i%2 -eq 0 ]]; then
  49.     if [ $((i%2)) -eq 0 ]; then
  50.         head -n $i $fichier | tail -n 1
  51.     fi
  52. done
  53.  
  54. #!/bin/bash
  55. # TP3 --- Exercice 6
  56. rep="data/haddock"
  57. resume="resume.txt"
  58. fichiers=$(ls $rep)
  59. for nom in $fichiers; do
  60. #for nom in $(ls $rep); do
  61.     # >> écrit à la fin du fichier alors que
  62.     # > crée un nouveau fichier à chaque fois
  63.     echo "[nom du fichier] $nom" >> $resume
  64.     # affiche les trois premieres lignes de rep/nom
  65.     head -n 3 $rep/$nom >> $resume
  66. done
  67.  
  68. echo "version alternative"
  69. n=0
  70. cat $fichier | while read ligne ; do
  71.     n=$((n+1))
  72.     if [ $((n%2)) -eq 0 ]; then
  73.         echo $ligne
  74.     fi
  75. done
  76.  
  77.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement