|
Cic |
Esercizio esame lab |
20-11-2016 16:10 |
|
|
Cic |
.fedelissimo.
Registered: Jul 2009
Posts: 44 (0.01 al dì)
Location:
Corso:
Anno:
Time Online: 16:21:01: [...]
Status: Offline
Edit | Report | IP: Logged |
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?
|
20-11-2016 16:10 |
|
|
| |
|
Cronovirus |
Con la find trovi tutti i nomi dei file .c e con u ... |
20-11-2016 19:57 |
|
|
Cronovirus |
dsy core staff
Registered: Jun 2012
Posts: 471 (0.10 al dì)
Location:
Corso: Magistrale in Informatica
Anno: 2
Time Online: 4 Days, 2:45:03: [...]
Status: Offline
Edit | Report | IP: Logged |
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
|
20-11-2016 19:57 |
|
|
| |
|
Cic |
Sì, sull'idea su come procedere non ho grossi pro ... |
22-11-2016 10:19 |
|
|
Cic |
.fedelissimo.
Registered: Jul 2009
Posts: 44 (0.01 al dì)
Location:
Corso:
Anno:
Time Online: 16:21:01: [...]
Status: Offline
Edit | Report | IP: Logged |
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.
|
22-11-2016 10:19 |
|
|
| |
|
Cic |
Praticamente mi manca l'ultimo passaggio, perché ... |
22-11-2016 10:20 |
|
|
Cic |
.fedelissimo.
Registered: Jul 2009
Posts: 44 (0.01 al dì)
Location:
Corso:
Anno:
Time Online: 16:21:01: [...]
Status: Offline
Edit | Report | IP: Logged |
Praticamente mi manca l'ultimo passaggio, perché finché si tratta di trovarli e stamparli, non ho problemi.
|
22-11-2016 10:20 |
|
|
| |
|
Cronovirus |
usa 'wc -c' ... |
22-11-2016 15:24 |
|
|
Cronovirus |
dsy core staff
Registered: Jun 2012
Posts: 471 (0.10 al dì)
Location:
Corso: Magistrale in Informatica
Anno: 2
Time Online: 4 Days, 2:45:03: [...]
Status: Offline
Edit | Report | IP: Logged |
usa 'wc -c'
|
22-11-2016 15:24 |
|
|
| |
|
Cic |
Alla fine ci sono riuscito, se a qualcuno può int ... |
22-11-2016 15:41 |
|
|
Cic |
.fedelissimo.
Registered: Jul 2009
Posts: 44 (0.01 al dì)
Location:
Corso:
Anno:
Time Online: 16:21:01: [...]
Status: Offline
Edit | Report | IP: Logged |
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
|
22-11-2016 15:41 |
|
|
| |
|
PrizeD |
[QUOTE][i]Originally posted by Cic [/i]
... |
29-12-2016 16:06 |
|
|
PrizeD |
.consigliere.
Registered: Dec 2007
Posts: 140 (0.02 al dì)
Location: Cerro Maggiore
Corso: Informatica
Anno: 3°
Time Online: 20:00:39 [...]
Status: Offline
Edit | Report | IP: Logged |
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
Ciao, stavo provando anche io a fare questo esercizio, e mi sono accorto che facendo così vengono contati anche gli \n presenti. Alla fine sono arrivato a:
sudo find / -type f -name "*.c" | cut -d "/" -f2 | xargs printf "%s" | wc -m
Usando printf al posto di echo non c'è più il problema di \n letti a fine riga.
Last edited by PrizeD on 29-12-2016 at 18:35
|
29-12-2016 16:06 |
|
|
| |
|
Cronovirus |
find ./ -type f -name "*.c" -printf "%f" | wc -c ... |
29-12-2016 20:39 |
|
|
Cronovirus |
dsy core staff
Registered: Jun 2012
Posts: 471 (0.10 al dì)
Location:
Corso: Magistrale in Informatica
Anno: 2
Time Online: 4 Days, 2:45:03: [...]
Status: Offline
Edit | Report | IP: Logged |
find ./ -type f -name "*.c" -printf "%f" | wc -c
|
29-12-2016 20:39 |
|
|
| |
|
PrizeD |
[QUOTE][i]Originally posted by Cronovirus [/i]
... |
29-12-2016 21:07 |
|
|
PrizeD |
.consigliere.
Registered: Dec 2007
Posts: 140 (0.02 al dì)
Location: Cerro Maggiore
Corso: Informatica
Anno: 3°
Time Online: 20:00:39 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by Cronovirus
find ./ -type f -name "*.c" -printf "%f" | wc -c
Ma "wc -c" non stampa il numero di byte di un file?
|
29-12-2016 21:07 |
|
|
| |
|
Cronovirus |
si, nota che un carattere è un byte e quindi è g ... |
29-12-2016 21:09 |
|
|
Cronovirus |
dsy core staff
Registered: Jun 2012
Posts: 471 (0.10 al dì)
Location:
Corso: Magistrale in Informatica
Anno: 2
Time Online: 4 Days, 2:45:03: [...]
Status: Offline
Edit | Report | IP: Logged |
si, nota che un carattere è un byte e quindi è giusto. Puoi usare anche wc -m, non cambia niente
|
29-12-2016 21:09 |
|
|
| |
|
PrizeD |
Si, ma l'esercizio era di contare i caratteri cont ... |
29-12-2016 21:40 |
|
|
PrizeD |
.consigliere.
Registered: Dec 2007
Posts: 140 (0.02 al dì)
Location: Cerro Maggiore
Corso: Informatica
Anno: 3°
Time Online: 20:00:39 [...]
Status: Offline
Edit | Report | IP: Logged |
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
|
29-12-2016 21:40 |
|
|
| |
|
Cronovirus |
prova per credere ... |
29-12-2016 22:05 |
|
|
Cronovirus |
dsy core staff
Registered: Jun 2012
Posts: 471 (0.10 al dì)
Location:
Corso: Magistrale in Informatica
Anno: 2
Time Online: 4 Days, 2:45:03: [...]
Status: Offline
Edit | Report | IP: Logged |
prova per credere
|
29-12-2016 22:05 |
|
|
| |
|
Cic |
Ha ragione Cronovirus, con la soluzione proposta d ... |
04-01-2017 12:02 |
|
|
Cic |
.fedelissimo.
Registered: Jul 2009
Posts: 44 (0.01 al dì)
Location:
Corso:
Anno:
Time Online: 16:21:01: [...]
Status: Offline
Edit | Report | IP: Logged |
Ha ragione Cronovirus, con la soluzione proposta da lui, non vengono contati gli \n. Grazie.
|
04-01-2017 12:02 |
|
|
| |
|
PrizeD |
Scusa Cic se mi riaggancio al tuo post, ma evito d ... |
16-01-2017 15:41 |
|
|
PrizeD |
.consigliere.
Registered: Dec 2007
Posts: 140 (0.02 al dì)
Location: Cerro Maggiore
Corso: Informatica
Anno: 3°
Time Online: 20:00:39 [...]
Status: Offline
Edit | Report | IP: Logged |
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
In pratica leggo tutti i file e li stampo con il relativo numero di blocchi, riordino e stampo solo se trovo più di 1 file con un certo numero di blocchi. (head -20 l'ho messo per velocizzare le prove)
Che ne pensate? Come avreste fatto voi? (commenti e correzioni al codice sono più che ben accetti)
Last edited by PrizeD on 16-01-2017 at 15:52
|
16-01-2017 15:41 |
|
|
| |
|
Cic |
Sembra andare bene, al momento non mi vengono in m ... |
16-01-2017 16:23 |
|
|
Cic |
.fedelissimo.
Registered: Jul 2009
Posts: 44 (0.01 al dì)
Location:
Corso:
Anno:
Time Online: 16:21:01: [...]
Status: Offline
Edit | Report | IP: Logged |
Sembra andare bene, al momento non mi vengono in mente altre soluzione. Se ne trovo una alternativa, la pubblicherò.
|
16-01-2017 16:23 |
|
|
| |
|
All times are GMT. The time now is 02:57. |
|
|
|
|
|
|
|
| |
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|