Esame 19 giugno 2009 Parte di Unix 1) eseguire le seguenti operazioni binario : 111101010101 + 1001011100 = 1000110110001 ottale : 57 * 47 = 3451 esadecimale : 8AD90 + C789210 = C813FA0 2) fare uno script che esamini il file delle password e che ordini ciascuna riga secondo un ordinamento che dipende dallo user NUMBER (number, NON username). Vale a dire che le righe devono essere ordinate per user numbers CRESCENTI. Si contino inoltre il numero di utenti e se ne mandi il numero per email a studente, insieme all'informazione se il numero di utenti e' un numero divisibile per 3. #/bin/tcsh sort -t: -k 3n /etc/passwd set info = `wc /etc/passwd ` echo il numero di utenti e\' $info[1] @ resto = $info[1] % 3 if ( $resto == 0 ) then echo il numero di utenti e\' $info[1] ed e\' un numero divisibile per 3 | mail studente else echo il numero di utenti e\' $info[1] e non e\' un numero divisibile per 3 | mail studente endif Parte di Perl 3) scrivere uno script che conti il numero di processes che appartengono all'utente studente attualmente. Se tale numero e' pari allora si stampi a stdout il contenuto di tutti gli ASCII files presenti nella current directory. Se tale numero e' dispari allora si stampi il contenuto di tutte le righe degli ASCII files predetti CON L'ECCEZIONE dell'ultima riga di essi. #!/usr/bin/perl @listafiles= <*>; $nfiles = @listafiles; @lista = `ps -u studente` ; $n = @lista; $n--; print "num. proces $n\n"; foreach $f (@listafiles){ if ( -T $f ) { open IN, "$f"; if ( $n % 2 == 0 ) { while() { print; } } else { @contenuto = ; $nlinee = @contenuto; for($i=0; $i<$nlinee-1; $i++){ print "$contenuto[$i]"; } } close IN; } }