Table of Contents
Ioan-Mihail Stan
- Nume complet: Stan Ioan-Mihail
- Alias-uri: John
- Data/Locul naşterii: 7 iunie 1992, Bucureşti
- Înălțime: 1.71m
- Culoare ochi: căprui
- Culoare păr: brunet
- Mărime tricou: L
- Blugi: ???
- Mărime încălțăminte: 41
- Semne distinctive: nu sunt necesare
Educație
- 2011-prezent: Student la facultatea de Automaticǎ şi Calculatoare
- CTI CA 3?1
- 2007-2011: Absolvent al Colegiului Naţional de Informatică “Tudor Vianu”, Bucureşti, bacalaureat
- profil Matematicǎ - Informaticǎ
Competențe IT
- sisteme de operare
- Linux (am lucrat cu distribuţiile Ubuntu, Mint, Debian, Fedora), Windows (în special XP)
- limbaje de programare
- bine: C, C/C++, shell scripting
- beginner: octave, html, latex, xml, dtd
- domenii de interes
- rețelistică, sisteme de operare, limbaje de programare etc.
Site-uri preferate
Preferințe
Criteriu | “Valoare” |
---|---|
Limbaj de programare | C/C++ |
Sistem de operare (distribuție) | Mint /Linux |
Aplicație favorită | MinGW |
Personalitate IT preferată | Dennis Ritchie |
Companie preferată | IBM |
- Tema 3 USO:
#!/bin/bash #Stan Ioan-Mihail #311 CA cd $1 git checkout master &> /dev/null #task 1 #comenzile imi afiseaza toate linile unde apare cuvantul Author ; separ dupa delimitatorul " " -spatiu in coloane astfel de la 2 pana la final de linie mi se vor afisa practic numele + mailurile autorilor de commituri (apelul functiei cut ), nume pe care le sortez corespunzator si carora le numar aparitiile ( sort | uniq -c | uniq -g -r ) if test $2 = "-n" ; then if test $4 = "top_contributors" ; then git log | grep "Author:" | head -$3 |sed -e 's/^[ \t]*//'| cut -n -d ' ' -f 2- | sort | uniq -c | sort -g -r | head -$5 #in cazul in care nu exista argumentul 5 ($5) head - va afisa toate liniile fisierului astfel punctez doua situatii posibile ( cand sunt trimisi 4 sau 5 parametrii ) #exista posibilitatea ca path-ul unui fisier sa fie deplasat spre dreapta cu delimitatorii tab sau space; pentru a lua in considerare acea situatie am apleat la functia sed fi elif test $2 = "top_contributors" ; then if test $# -eq 3 ; then git log| grep "Author:"|sed -e 's/^[ \t]*//'| cut -n -d ' ' -f 2- | sort | uniq -c | sort -g -r |head -$3 fi fi #task 2 #caut liniile care incep cu caractere numerice din statistica numstat a git log-ului; caut practic fisierele dupa statistica insertions if test $2 = "-n" ; then if test $4 = "added_lines" ; then if test $# -eq 5; then git log -$3 --numstat | grep ^[0-9] | tr "\t" " " | grep " $5" | cut -f 1 | awk '{contor+=$1} END {print contor}' #exista posibilitatea ca un fisier cautat intr-o lista cu grep sa se gaseasca in 2 ierarhi de foldere diferite astfel pentru a gasi exact path-ul cerut schimb tab-urile cu spatii si caut exact folderul cerut punand un spatiu inainte de nume else git log -$3 --numstat | grep ^[0-9] | cut -f 1 | awk '{contor+=$1} END {print contor}' #functia awk imi va aduna tot ce se gaseste pe coloana 1 din "fisierul" creat din succesiunea de pipe-uri fi fi else if test $2 = "added_lines" ; then if test $# -eq 3; then git log --numstat | grep ^[0-9] |tr "\t" " " | grep " $3" | cut -f 1 | awk '{contor+=$1} END {print contor}' else git log --numstat | grep ^[0-9] | cut -f 1 | awk '{contor+=$1} END {print contor}' fi fi fi #task 3 #realizez statistici dupa coloana deletions din statistica numstat if test $2 = "-n" ; then if test $4 = "deleted_lines" ; then if test $# -eq 5; then git log -$3 --numstat | grep ^[0-9] |tr "\t" " " | grep " $5" | awk '{print $2, $1, $3}' | cut -d " " -f 1 | awk '{contor+=$1} END {print contor}' else git log -$3 --numstat | grep ^[0-9] | awk '{print $2, $1, $3}'| cut -d " " -f 1 | awk '{contor+=$1} END {print contor}' #prima functie awk imi interschimba coloane fi fi else if test $2 = "deleted_lines" ; then if test $# -eq 3; then git log --numstat | grep ^[0-9] | tr "\t" " " | grep " $3" | awk '{print $2, $1, $3}' | cut -d " " -f 1 | awk '{contor+=$1} END {print contor}' else git log --numstat | grep ^[0-9]|tr "\t" " " | awk '{print $2, $1, $3}'| cut -d " " -f 1 | awk '{contor+=$1} END {print contor}' fi fi fi #task 4 #statistica numstat a git log imi afiseaza toate fisierele modificate in vreun fel; liniile cu path-ul fisierelor sunt cele care incep cu caractere numerice sau - ; wc -l numara liniile dintr-un fisier if test $2 = "-n" ; then if test $4 = "touched_files" ; then if test $# -eq 5; then git log -$3 --numstat --author="$5" | grep ^[0-9-] | cut -f 3 | sort | uniq | wc -l else git log -$3 --numstat | grep ^[0-9-] | cut -f 3 | sort | uniq | wc -l fi fi else if test $2 = "touched_files" ; then if test $# -eq 3; then git log --numstat --author="$3" | grep ^[0-9-] | cut -f 3 | sort |uniq | wc -l else git log --numstat | grep -E ^[0-9-] | cut -f 3 | sort | uniq | wc -l fi fi fi #task 5 #git log branch1..branch2 afiseaza commiturile din branch-ul 2 care nu se gasesc in primul if test $2 = "diff_branches" ; then echo "Commits only in branch $3:" git log $4..$3 --oneline | cut -d " " -f 2- echo echo "Commits only in branch $4:" git log $3..$4 --oneline | cut -d " " -f 2- fi