The UNIX and Linux Forums  
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
una stringa di parsing in uno script di shell asutoshch Shell scripting e di programmazione 19 05-26-2008 10:18 PM
script shell parsing con sed jjamd64 UNIX for Dummies Domande & Risposte 5 12-11-2007 04:51 PM
Parsing di una linea in Shell Script unishiva Shell scripting e di programmazione 3 11-01-2007 04:30 PM
Guida in linea di parsing di un file CSV con Shell script mihirk Shell scripting e di programmazione 10 06-24-2007 11:58 AM
Parsing di un file in Shell Script sendhilmani123 Shell scripting e di programmazione 4 11-30-2006 02:29 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 02-08-2007
gurpreet470 gurpreet470 is offline
Utente Registrato
  
 

Iscriviti Data: febbraio 2007
Interventi: 4
Script di shell per l'analisi del file di log 300MB ..

sono relativamente nuovo di shell scripting.
Ho scritto uno script per l'analisi ad un grosso file. La logica è la seguente:
Oltre a molti altri animali inutili, ci sono molti eventi di <abc> e corrispondente </ abc> tag. (Tutti questi siano correttamente chiuse)
La mia esigenza è quella di trovare un particolare tag (ad esempio <data> 1234 </ dati>) racchiusi in qualsiasi punto tra <abc> </ abc> tag.
Se trovati, ho per memorizzare 4a riga al di sotto del <abc> tag in un file temporaneo.

Un tipico file di log somiglia a:

************************
<pqr>
......
alcuni dati
alcuni altri dati
.........
</ PQR>
alcuni dati di testo
...........
<abc>
blah
blah
.....
<id> 12345 </ id>
blah ...
......
<data> 1234 </ dati>
</ abc>
........
.....
.....

<abc>
blah
blah
.....
<id> 12345 </ id>
blah ...
...
</ abc>
..........
<rst>
...
...
</ primo>
alcuni dati di testo ...

****************************

Output dello script dovrebbe essere <id> 12345 </ id> memorizzati in alcuni file temporaneo.

Lo script sto utilizzando è il seguente:

********************

rm-f temp.log
filename \u003d $ 1
OK \u003d 0

mentre leggere line1
fare


if [ "$ line1" \u003d "<abc>"], quindi
OK \u003d 1
fi

if [ "$ OK"-eq 1]; poi
echo $ line1>> temp_file
fi

if [ "$ line1" \u003d "</ abc>"]; poi
OK \u003d 0
fi

if [ "$ OK"-eq 0], quindi

if [-f temp_file], quindi

mentre leggere line2

fare

if [ "$ line2" \u003d "<data> 1234 </ dati>"]; poi

cat temp_file | awk '(if (NR \u003d\u003d 4) (print ($ 0)))'>> temp.log

fi

fatto <temp_file

rm temp_file

fi

fi

done <$ filename.log

*******************************

Il <abc> </ abc> tag provengono in ultima porzione generale (non sempre), da qualche parte dopo circa 500.000 linee ... e di solito, il file è di circa 700.000 linee.

Lo script viene eseguito, e continua a funzionare, e mi trovo 2 record che sono nelle prime righe memorizzate nel file temporaneo. Ma dopo qualche 6-7 minuti, lo script termina bruscamente, dicendo:
scriptname.sh prova: argomento previsto.

Qualcuno mi può aiutare su questo?
  #2 (permalink)  
Old 02-08-2007
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Iscriviti Data: gennaio 2007
Ubicazione: Варна, България / Milano, Italia
Messaggi: 2.876
*GNU Awk * soluzione:

Codice:
awk '/data>1234/{print $5}' RS="<abc>" FS="\n" infile
  #3 (permalink)  
Old 02-09-2007
gurpreet470 gurpreet470 is offline
Utente Registrato
  
 

Iscriviti Data: febbraio 2007
Interventi: 4
Script non funziona ..

Citazione:
Originalmente inviato da radoulov
*GNU Awk * soluzione:

Codice:
awk '/data>1234/{print $5}' RS="<abc>" FS="\n" infile
Sono veramente impressionato dalla potenza awk ..
Dopo aver letto la sua risposta, si prega di leggere alcuni articoli su awk.
In qualche modo, lo script non funziona ancora, e termina dicendo ..
**********************
awk: record `/ risposta>
Venerdì 00:27 :...' troppo lungo
numero 22
**********************
Ho grandi speranze su di voi adesso

Grazie
  #4 (permalink)  
Old 02-09-2007
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Iscriviti Data: gennaio 2007
Ubicazione: Варна, България / Milano, Italia
Messaggi: 2.876
Provate a fare il record più brevi. Lei ha detto che il <abc> </ abc> tag provengono in ultima parte, dopo circa 500000 linea in modo che il primo record è davvero lungo . È possibile rendere più breve compresi gli altri tag / archi (che si hanno a beginig del file) nella RS: per esempio RS \u003d "<abc> | <other_tag>". Oppure, se si preferisce, si può mandare una copia in formato zip del file privatamente, così ho potuto dare una prova
BTW, qual è la sua versione Awk?
Closed Thread

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 08:22 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0