[linux_var] dpkg-du

Fernando Vezzosi fv a linuxvar.it
Ven 13 Mar 2009 08:20:28 UTC


On Wed, Mar 11, 2009 at 11:52:41PM +0100, Luca Lesinigo wrote:
> Siccome mi serviva alla svelta ho buttato insieme 'sta fregnaccia: for
> PKG in $(dpkg -l | grep ^ii | awk '{ print $2 }'); do { printf '%6d
> %s\n' $(apt-cache show $PKG | grep ^Installed-Size: | head -n1 | awk
> '{ print $2 }') ${PKG} } done

eew.  Un paio di consigli anche se la soluzione pulita  in fondo alla
mail:

1. Come evitare le pipe (si diventa ciechi):

  grep pattern | awk '{cmd}'    # .. diventa:

  awk '/pattern/ {cmd}'         # esegue cmd per le linee che matchano

2. Come evitare di buttare via un sacco di output

  grep pattern | head -n1       # .. diventa:

  grep -m 1 pattern             # esce dopo 1 match

> Qualche illustre debianaro mi sa dire un modo meno stupido per
> ottenere lo stesso risultato?

Ora mi sento un illustre Debianaro :)

  grep-status -n -FStatus -sPackage,Installed-Size 'install ok installed'

Questo  per un formato balzano, quindi ci sono un paio di opzioni:

perl -e '$/="\n\n"; do { @p=(split "\n")[0,1]; $h{$p[0]} = $p[1] } for
<>; END{map { print("$h{$_} $_\n") } (sort {$h{$b} <=> $h{$a}} keys
%h)[0..9]}'

perl -e '($/,$\)=("\n\n", "\n"); print join" ",reverse split while <>' | sort -rn | head

perl -e '$/="\n\n"; $\="\n"; do {s/\n/ /g; print} while <> ' | sort -rnk2 | head

perl -e '$/="\n\n"; print (join " ", (split "\n", <>)[1, 0], "\n") while <>' | sort -rn | head

perl -e '$/="\n\n"; print (join " ", reverse(split "\n", <>), "\n") while <>' | sort -rn | head

paste -sd '  \n' | sort -rn | head

Io tifo per l'unica soluzione che non comprende "| sort | head" :)

Saluti a tutti dalla vichinghia

-- 
  Fernando Vezzosi
         qw(MDAx MTAw MDEw MDEx MDAw _5 MTEw _6 _1 _5 _5 _4 _2 _2 _6
         MTEx _1 _5 _5 _4 _5 _2 _6 _1 _1 _2 _2 _3 _5 _5 _6 _1 _1 _2
         _5 _4 _3 _5 _2 _5 _1 _2 _3 _4 _5 MA==)
-------------- parte successiva --------------
Un allegato non testuale  stato rimosso....
Nome:        signature.asc
Tipo:        application/pgp-signature
Dimensione:  197 bytes
Descrizione: Digital signature
URL:         <http://ml.linuxvar.it/pipermail/talking/attachments/20090313/32afd7da/attachment.pgp>


More information about the Talking mailing list