![]() |
Pages (2): [1] 2 » Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Sistemi operativi I (http://www.dsy.it/forum/forumdisplay.php?forumid=269)
-- Esercizio esame lab (http://www.dsy.it/forum/showthread.php?threadid=44091)
Esercizio esame lab
Ciao a tutti, mi sto preparando in vista dell'esame di sistemi operativi di gennaio e c'è un esercizio, che mi è capitato all'esame di laboratorio con Monga, che non riesco proprio a risolvere. Il testo dell'esercizio diceva:
trovare tutti i file .c e contare il numero di caratteri nel loro nome.
Compresa la loro estensione, esempio pippo.c=7.
Qualcuno saprebbe darmi una mano?
Con la find trovi tutti i nomi dei file .c e con una opsione li stampi tutti di fila, poi in pipe conti i caratteri 
Sì, sull'idea su come procedere non ho grossi problemi. Il fatto è che una volta trovati i file .c, contate le linee dei nomi, non riesco a contare il numero di caratteri delle linee praticamente, che poi sarebbero i nomi dei file.
Praticamente mi manca l'ultimo passaggio, perché finché si tratta di trovarli e stamparli, non ho problemi.
usa 'wc -c'
Alla fine ci sono riuscito, se a qualcuno può interessare, ho fatto così:
sudo find / -type f -name "*.c" | rev | cut -d "/" -f1 | rev | wc -m
Originally posted by Cic
Alla fine ci sono riuscito, se a qualcuno può interessare, ho fatto così:
sudo find / -type f -name "*.c" | rev | cut -d "/" -f1 | rev | wc -m
find ./ -type f -name "*.c" -printf "%f" | wc -c
Originally posted by Cronovirus
find ./ -type f -name "*.c" -printf "%f" | wc -c
si, nota che un carattere è un byte e quindi è giusto. Puoi usare anche wc -m, non cambia niente
Si, ma l'esercizio era di contare i caratteri contenuti nel nome. E inoltre, rimane il problema degli \n, che con molta probabilità vengono contati da -c
prova per credere
Ha ragione Cronovirus, con la soluzione proposta da lui, non vengono contati gli \n. Grazie.
Scusa Cic se mi riaggancio al tuo post, ma evito di aprirne uno nuovo.
Stavo facendo questo esercizio:
- Trovare tutti i file che abbiano lo stesso numero di blocchi
count=0; prevf=""; prevb=0; find / -type f | head -20 | while read file; do blocks=$(stat -c %b $file); echo "$blocks $file"; done | sort -n | while read blocks file; do if [ $count -eq 0 ]; then prevb=$blocks; prevf=$file; fi; ((count++)); if [ $blocks -ne $prevb ]; then if [ $count -gt 2 ]; then echo "$prevb BLOCKS $prevf"; fi; prevb=$blocks; prevf=$file; count=1; fi; if [ $count -gt 1 ]; then echo "$prev BLOCKS $prevf"; prevf=$file; fi; done
Sembra andare bene, al momento non mi vengono in mente altre soluzione. Se ne trovo una alternativa, la pubblicherò.
| All times are GMT. The time now is 01:59. | Pages (2): [1] 2 » Show all 27 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.