Soluzione esame del 30 gennaio 2009, primo testo. 1) Eseguire la seguente operazione in binario : 11111101 + 1001101 = 101001010 eseguire la seguente operazione in ottale : 704567 + 732154 = 1636743 eseguire la seguente operazione in esadecimale : 10AA85 + CCC123 = DD6BA8 UNIX 2) Supponendo di avere la seguente history list : 12 ls -ltr 13 ls pippo1 pluto topolino minnie 14 pwd dove 12, 13 e 14 sono il numero progressivo che identifica i comandi, scrivere il comando che, sfruttando i comandi di history substitution, produca il seguente nuovo comando : cat pippo2 pluto topolino minnie paperino Soluzione : cat !13:*:s/1/2/ paperino 3) Fare un script in cui si crei una directory stack composta dalle seguenti directories : /home/studente/pippo /home/studente/pluto /home/studente/cestino /home/studente/paperino e quindi, si girino tutte le directory suddette (senza l'uso esplicito del comando cd ) e per ognuna si faccia la lista lunga dei files presenti. #/bin/tcsh pushd /home/studente/pippo pushd /home/studente/pluto pushd /home/studente/cestino pushd /home/studente/paperino ls -l pushd +1 ls -l pushd +1 ls -l pushd +1 ls -l PERL 4) Scrivere uno script perl che accetti in input, NON COME ARGOMENTI, un numero a priori non noto di righe. Supponendo che ciascuna riga contenga un Nome, Cognome tra loro separati da un numero a picere di spazi bianchi, come nel seguente esempio : Roberto Rossi Gianluigi Boca Giacomo Ponteluca stampare a standard output le seguenti gli stessi nomi, prima ordinandoli alfabeticamente secondo i NOMI, poi alfabeticamente secondo i COGNOMI. #!/usr/bin/perl @input = ; # prima ordino per nome. @ordinati = sort @input; print @ordinati; chomp @input; foreach ( @input){ @fields = split / +/; $hashcognomi{$fields[1]} = $fields[0]; } foreach (sort keys %hashcognomi ) { print "cognome : $_ , nome : $hashcognomi{$_}\n"; } 5) Scrivere uno scipt PERL che accetti COME ARGOMENTO il nome di un file ASCII e poi conti quante volte c'e' il carattere A maiuscolo nel file e lo stampi a standard output. #!/usr/bin/perl open IN,"$ARGV[0]"; $counter = 0; while () { while ( /A/g ) { $counter++; } } print "Il carattere A viene stato trovato $counter volte\n";