130 lines
5.0 KiB
Plaintext
130 lines
5.0 KiB
Plaintext
|
YOLOU
|
|||
|
TP07 SCR 1.2
|
|||
|
|
|||
|
I.
|
|||
|
|
|||
|
La commande expr permet de montrer la valeur de l’expression 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 “_” c’est 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 d’une 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 n’importe
|
|||
|
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
|
|||
|
|
|||
|
2.
|