[linux_var] x buccia - bash

Bucciarati dr. Bruno bucciarati a hotbox.ru
Dom 5 Set 2004 00:15:10 UTC


ciao!
Scusa il delay nella risposta, sono stato in pseudo-vacanze..

On Wed, Aug 18, 2004 at 04:50:57PM +0200, HelLViS69 wrote:
> Ciao Buccia, nn ? ke mi potresti spiegare come si fanno le espressioni 
> regolari con la bash? io devo cattare un file e prendere solo delle parole, 
> ke immagino andranno in un array x comodit?. Devo fare sto lavoro:
> prendere il file /proc/net/dev e stampare il nome delle interfacce di rete 
> presenti, i bute ricevuti e inviati, e gli errori/drop. Mi daresti una mano?

Per usare le espressioni regolari in uno script sh si puo` usare
solamente grep. Personalmente, per cose astruse con stringhe ed
espressioni regolari (ed array ??) userei Perl/awk/sed..
Il file in questione pero` ha un layout obbrobrioso.. meglio awk ??
Non sono riuscito a capire perche` volessi mettere i dati in un array ..
esigenze particolari ??

Dato che avevo poco da fare (:S) mi sono dilettato con tre versioni.. in
attach.. niente compressione per facilitare la lettura flash.. (la
versione sed l'ho evitata dato che ce l'ho in mente ma mi fa schifo come
mi verrebbe fuori.. la conservo nella mia testa che sta in buona
compagnia con tutte le altre schifezze :D)

In effetti alla fine la versione Perl e` forse la piu` brutta, la sh la
meno elegante, e la awk la piu` concisa..
Questo perche` il mio stile di programmazione e` quello che vedete..

HelLViS69, questi sono esempi di come retrievare le informazioni che ti
servono in questi linguaggi, ovviamente editali per suitare i tuoi
needs..

bye, e buon ritorno al lavoro a tutta la lista..!!

p.s.: come sono yankee oggi
p.p.s.: utilizzo:
  salvare tutto in /tmp per liberarsi di questa vergogna al reboot
  % chmod 700 /tmp/{pl,sh,awk}
  % cd /proc/net
  % cat dev ; /tmp/pl ; /tmp/sh ; /tmp/awk dev

> 
> HelLViS69
> -- 
> Poich? siamo costretti tra le sbarre di una prigione
> la nostra non ? la disdicevole fuga
> del disertore di fronte al nemico,
> ma la legittima evasione del prigioniero...
> 
> 
>   (--- * * * * * * * * * * * * * * * * * * * * * * ---)
> Per cancellare l'iscrizione: <talking-unsubscribe at ml.linuxvar.it>
> Interfaccia web di configurazione: http://ml.linuxvar.it/ml/

-- 
Bucciarati dr. Bruno
GIT dpu s+:-- a19 C+++ UL++++> P+++> L+++> E--- W--(-) N o? K?
w--- O-- M-- V-- PS+ PE-- Y+ PGP+++> t+ 5? X R? tv-->! b> DI?
!D G++ e h! r--- !y+>   /"\      |
                        \ /      |     Please use GnuPG
ASCII Ribbon campaign    X       |       (0xB28997C9)
  Against HTML Mail     / \      |     hkp://pgp.mit.edu
-------------- parte successiva --------------
#!/usr/bin/perl -w

use strict;
use diagnostics;

open FD, ( shift || '/proc/net/dev' ) or die 'cant open';

while( <FD> ){
	/^\s*([[:alnum:]]+):\s*([[:digit:]]+)\s+([[:digit:]]+)\s+([[:digit:]]+)/ and
	print "perl\tiface $1:\trb $2\trp $3\tre $4\n";
}
close FD;
-------------- parte successiva --------------
#!/bin/sh

grep -E '^[[:space:]]*[[:alnum:]]+:' /proc/net/dev | \
	while read iface \
	rb rp re rd fuffa fuffa fuffa fuffa \
	tb tp te td fuffa
do
	echo -e "sh\tiface $iface\trb $rb\trp $rp\tre $re"
done
-------------- parte successiva --------------
#!/usr/bin/awk -f

/^[[:space:]]*[[:alnum:]]+:/ {
	print "awk\tiface " $1 "\trb " $2 "\trp " $3 "\tre " $4 ;
}
-------------- parte successiva --------------
Un allegato non testuale  stato rimosso....
Nome:        signature.asc
Tipo:        application/pgp-signature
Dimensione:  189 bytes
Descrizione: Digital signature
URL:         <http://ml.linuxvar.it/pipermail/talking/attachments/20040905/9e56c6cc/attachment.pgp>


More information about the Talking mailing list