[Linux-Biella] awk cut caz maz...

linux@ml.bilug.linux.it linux@ml.bilug.linux.it
Thu, 18 Mar 2004 21:20:15 +0100


Il Thu, 18 Mar 2004 18:14:43 +0100
LeOS <leos@bilug.linux.it> ha scritto:

> buonagiorgio
> mi sta fumando la mente...
inquini

> ho una cosa di questo tipo:
> 
> 03/18-17:20:26.215086 192.168.7.11:60826 -> 192.168.7.2:161
> 03/18-17:20:26.786936 192.168.7.11:60826 -> 192.168.7.2:705
> 03/18-17:20:26.817741 192.168.7.11:60826 -> 192.168.7.2:8080
> 
> vorrei con una simpatica combinazione di awk e cut ottenere qualcosa
> tipo:
> 
> 192.168.7.11 17:20
> 192.168.7.11 17.20
> 192.168.7.11 17.20
> 
> (od anche 17:20 192.168.7.11  che posso invertire con awk print $2 $1)

Purtroppo conosco troppo poco awk.
Ti invio una soluzione in perl.
Non chiarisci pero' quali sono gli elementi stabili nelle righe da elaborare.
Supponendo stabile la posizione dei dati sulle colonne e considerando di
elaborare solo le prime 3 righe farei:

#!/usr/bin/perl
print "\nelaboro la rumenta di LeOS\n";                        
open A, "path del file input";             # apro file in lettura                     
 $"="";                                    # separatore di lista nullo          
 @riga=<A>;                                # creo array righe pagina            
 foreach $numriga(0..2)                    # processo 3 righe dati
                                           # (attenz.riga 0 e' la prima)
  {@dati=split (//,@riga[$numriga]);       # righe dati                         
   $ora="@dati[7..11]";                    # ora                      
   $dominio="@dati[23..34]";               # dominio                          
   open B, ">>path del file output";       # apro file in append (quando
                               # rilanci lo script azzera il file output)                
   print B "$ora $dominio\n";              # scrivo i dati richiesti  
   }
close A;                                   # chiudo il descrittore
print "\nfinito di elaborare la rumenta di LeOS\n";
  
Altrimenti devi cambiare separatore di lista e casinare ulteriormente
sulle righe in output.

Ciao           

-- 

      Vallini Daniele

+-----------------------------------------------------------------------+
| Per lavorare  con efficienza  utilizzo unicamente  Linux  e files nei |
| formati unificati ed affidabili.  Per cortesia quindi non .doc o .xls |
+-----------------------------------------------------------------------+