SCRDEV/SCR.1.2/TP07/TP07-fichiereponses-SCR1.2.txt

145 lines
5.5 KiB
Plaintext
Raw Normal View History

2024-11-14 10:45:33 +01:00
YOLOU
TP07 SCR 1.2
I.
La commande expr permet de montrer la valeur de lexpression de la sortie standard. Ca calcule le nombre caractère de la chaine de caractères.
[yolou@archlinux TP07]$ expr length STRING
6
Explication : Cela montre le nombre de caractere dans cette chaine de caractères
[yolou@archlinux TP07]$ expr length stock_market
12
Explication : Ici si on compte de s à t ça fait 12.
[yolou@archlinux TP07]$ expr substr STRING POS LENGTH
Explication :
[yolou@archlinux TP07]$ expr substr stock_market 1 5
stock
Explication : Cela recupere les caractères de la chaine de caractères de 1 la position de longueur de 5 donc 1 2 3 4 5. Donc stock.
[yolou@archlinux TP07]$ expr substr stock_market 7 12
market
Explication : Cela reproduit la meme chose de 7 à 12. Donc market.
[yolou@archlinux TP07]$ expr index stock_market "_c"
4
expr index donne la possition du char sur une chaine de chaine de caractère
[yolou@archlinux TP07]$ expr index stock_market "_"
6
Explication : Car elle affiche la position du caractère “_” cest 6
[yolou@archlinux TP07]$ expr index stock_market "_c"
4
Explication : En gros il va donner 4 parce que il est premier à apparaitre il va mettre la position qui a apparait premiere ça aurait ete “sc” on aurait eu 1
2. // On affecte quatre variables : x,y,z,t du shell par chacune des sous -chaines correspondant aux quatres octes dans le mot affectee dans addr . On ne fait pas a la main, on fai par
expr en utilsant le mécanisme de subtistution dune commande par son résultat //
[yolou@archlinux TP07]$ addr=10110010111000101000011101110010
[yolou@archlinux TP07]$ expr length $addr
32
[yolou@archlinux TP07]$ x=$(expr substr $addr 1 8)
[yolou@archlinux TP07]$ echo $x
10110010
[yolou@archlinux TP07]$ y=$(expr substr $addr 9 8)
[yolou@archlinux TP07]$ echo $y
11100010
[yolou@archlinux TP07]$ z=$(expr substr $addr 17 8)
[yolou@archlinux TP07]$ echo $y
11100010
[yolou@archlinux TP07]$ t=$(expr substr $addr 25 8)
[yolou@archlinux TP07]$ echo $t
01110010
3. // On utilise maintenant le fait que le shell évalue des nombres donnés dans nimporte
quelle base. Ainsi, 2#101 est compris comme le nombre 101 dans la base 2. On utilise le
mécanisme de l´evaluation arithm´etique pour vérifier à quoi le shell ´evalue un tel nombre ://
$((...)) dit au shell que le contexte est arithmétique : on calcule ce qui est à l'intérieur
$((2#...)) ce que je te donne ici est en base 2
exemple $((2#101)) est remplacé par 5
[yolou@archlinux TP07]$ echo $((2#101))
5
Explication : cela explique quoi ? ECHO VEUT DIRE affiche montrer il donne l'argument entre les parathèse avec qui convertie ça en base de 2 avec cette exemple 101 en binaire devient 5
$ echo $((2#101110))
46
Explication : cela explique quoi ? ECHO VEUT DIRE affiche montrer il donne l'argument entre les parathèse avec qui convertie ça en base de 2 avec cette exemple 101 en binaire devient 46
4. // On affecte alors la variable addr_dot du shell par la notation décimale correspondant à
addr.//
[yolou@archlinux TP07]$ addr_dot=$((2#$x)).$((2#$y)).$((2#$z)).$((2#$t))
[yolou@archlinux TP07]$ echo $addr_dot
178.226.135.114
addr_dot=$((2#$x)).$((2#$y)).$((2#$z)).$((2#$t)) on verifie par echo $addr_dot
II-
1.
La commande sort permet de trier des lignes d'un fichier texte
[yolou@archlinux TP07]$ ls -l
total 36
-rw-r--r-- 1 yolou senart24 11371 Nov 6 11:59 TP07-fichiereponses-SCR1.2.odt
-rw-r--r-- 1 yolou senart24 3353 Nov 13 11:30 TP07-fichiereponses-SCR1.2.txt
-rw-r--r-- 1 yolou senart24 7839 Nov 13 11:28 find-output.txt
-rw-r--r-- 1 yolou senart24 9672 Nov 13 11:26 ls-output.txt
On prend le 5eme champs la taille pour ça on prend le la commande l'option sort -k key1.3, keykey.5 tout ça vient de la definition key
Donc si je veux un trie sur le champs 5 : je dis sort -nk (n pour numerique) 5,5 ls-output.txt
[yolou@archlinux TP07]$ sort -nk 5,5 ls-output.txt
-rw-r--r-- 1 root root 0 6 nov. 2016 odbc.ini
-rw-r--r-- 1 root root 0 6 nov. 2016 odbcinst.ini
-rw-r--r-- 1 root root 0 30 sept. 2015 arch-release
-rw-r--r-- 1 root root 0 30 sept. 2015 motd
total 1048
-rw-r--r-- 1 root root 4 5 juil. 2016 hostname.ori
-rw-r--r-- 1 root root 9 13 juil. 2016 hostname
-rw-r--r-- 1 root root 10 5 juil. 2016 vconsole.conf
-rw-r--r-- 1 root root 17 5 juil. 2016 locale.conf
lrwxrwxrwx 1 root root 19 5 juil. 2016 mtab -> ../proc/self/mounts
-rw-r--r-- 1 root root 20 30 sept. 2015 issue
lrwxrwxrwx 1 root root 21 5 juil. 2016 os-release -> ../usr/lib/os-release
lrwxrwxrwx 1 root root 25 6 juil. 2017 localtime -> ../usr/share/zoneinfo/UTC
-rw-r--r-- 1 root root 28 14 nov. 2016 bash.bash_logout
-r--r--r-- 1 root root 33 5 juil. 2016 machine-id
-rw-r----- 1 root brlapi 33 31 oct. 2016 brlapi.key
-rw-r--r-- 1 root root 49 18 juil. 13:11 resolv.conf
-rw-r--r-- 1 root root 52 30 sept. 2015 shells
2024-11-20 00:34:34 +01:00
2.(1) De la date la plus récente à la moins récente :
bash
Copier le code
sort -t: -k3,3r find-output.txt
Explication :
-t: : Utilise : comme séparateur.
-k3,3 : Trie sur la 3e colonne (qui contient les dates).
-r : Inverse l'ordre pour trier de manière décroissante (plus récent → moins récent).
(2) De la date la plus ancienne à la moins ancienne :
bash
Copier le code
sort -t: -k3,3 find-output.txt
Explication :
-t: : Utilise : comme séparateur.
-k3,3 : Trie sur la 3e colonne (les dates) en ordre croissant.