Giocando con la bash

Oggi ho avuto l’esigenza di ottenere in formato esadecimale le dimensioni dei files contenuti in una cartella.
Stanco di effettuare copia e incolla tra la calcolatrice e la shell, ho deciso di farmi dire tutto da questa ultima.
Nel giro di un quarto d’ora, giusto il tempo di leggere le varie manpages, ecco cosa ho tirato fuori.

Partenza

$ ls -l images/*
totale 12952
-rw-r--r-- 1 massi massi 11117611 2007-07-25 11:28 ramdisk.gz
-rwxr-xr-x 1 massi massi   193336 2007-07-25 10:43 redboot.bin
-rwxr-xr-x 1 massi massi  1930140 2007-07-25 10:41 zImage

Troppi dati, li limito con awk

$ ls -l images/* | awk '{print $5}'

11117611
193336
1930140

Ora ho i dati cercati, ma c’e’ una riga bianca di troppo: chiedo aiuto a tail

$ ls -l images/* | tail -n +2 | awk '{print $5}'
11117611
193336
1930140

Ok, la riga e’ sparita. Ora basta giocare un po’ con i campi di awk

$ ls -l images/* | tail -n +2 | awk '{printf("%s: %s(dec) %x(hex)\n", $8 ,$5 , $5)}'
ramdisk.gz: 11117611(dec) a9a42b(hex)
redboot.bin: 193336(dec) 2f338(hex)
zImage: 1930140(dec) 1d739c(hex)

Fatto!

Alla prox

Technorati Tags: , ,

This entry was posted in linux, opensource and tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>