The UNIX and Linux Forums  


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
Hai bisogno di aiuto nel comando sed (aggiungendo una riga vuota btw ogni blocco generato dal modello) frozensmilz Shell scripting e di programmazione 2 01-08-2009 12:12 AM
rendere più riga che contiene un modello unico in linea VTAWKVT Shell scripting e di programmazione 13 12-04-2008 06:40 PM
Commenta / eliminare un particolare modello a partire dalla seconda riga del modello corrispondente da trovare IMAS Shell scripting e di programmazione 4 10-13-2008 03:37 AM
Stampa su modello in linea FK_Daemon Shell scripting e di programmazione 3 11-23-2007 04:27 PM
sed - sostituire la riga che contiene il pattern di corrispondenza con una nuova linea kousikan Shell scripting e di programmazione 2 03-24-2007 07:24 AM

 
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 01-05-2009
frozensmilz's Avatar
frozensmilz frozensmilz is offline
Utente Registrato
  
 

Join Date: Aug 2008
Interventi: 28
Hai bisogno di aiuto in sed comando [+ stampa di un modello di linea o non linea non solo]

Ciao amici,

Solo molto recentemente ho iniziato a imparare sed ... uno dei comandi che ho trovato sed è più veloce a trovare i modelli di alcuni dei miei script che utilizza grep per verificare la Patten all'interno di un file riga per riga, utilizzando il metodo di ricerca che è in termini di tempo.

Il seguente script di "strMatch" è uno di loro che i uso per la ricerca di un modello. Una volta che il modello che si trova per visualizzare il modello e il numero di riga o il numero di riga sola, come illustrato di seguito.

> Ingresso
strMatch Sample.cpp "PATTERN STRING"
> Uscita
5: MODELLO STRING

> Ingresso
strMatch Sample.cpp "PATTERN STRING" 2
> Uscita
5

Molti dei miei altri script ha cominciato a usare questo script e la dipendenza di questo script è quasi diventato complesso in modo che il nuovo script che utilizza strMatch, direttamente o indirettamente, per vari scopi è lento in esecuzione. Ho notato che le seguenti sed comando può essere utilizzato per ottimizzare strMatch per aumentare la velocità di ricerca ...

sed '/ MODELLO STRING / p' Sample.cpp

Ma ho bisogno di ottenere il numero della linea, come anche i miei precedenti strMatch .... C'è un modo per stampare l'uscita, come di seguito

Risultato 1 [linea numero & modello]
5 STRING CORRENTI

Risultato 2 [Linea numero del modello in cui è stato trovato]
5

Perché alcuni dei miei script utilizza solo i numeri di linea ..... Si prega di aiutare a rendere strMatch script veloce .... lo scopo di strMatch è alla ricerca di un modello e riprendere lo schema località o il modello con la posizione attuale ..... Ecco strMatch script ...

vi è un caso speciale per la gestione di "comprendere" parola chiave ..... io non sono in grado di trovare alternative per "exec" comando per passare il contenuto del file di una variabile in quanto tale (con un corretto allineamento e )..... in qualche modo ogni volta che la ricerca di parole chiave per comprendere ... si exec su tutti i file presenti nella cartella, credo, con ....... sed I comandi non saranno richiedono "exec",

Grazie in anticipo ...........
-------------------------------------------------- -----------------------

filtro () (
modello \u003d $ 1
linea \u003d $ 2
per x in $ line; fare
bandiera \u003d `echo $ x | grep-c $ modello»

if [$ flag-eq 1]; poi
return $ bandiera
altro
return 0
fi
fatto
)

# filterKeywords () (

#)


pattern \u003d $ 2
exec <$ 1
# fileCont \u003d `rdfil $ 1»
linCnt \u003d 1

exitCnt \u003d `lincnt $ 1»
cnt \u003d 0
count \u003d 0
mode \u003d $ 3
rdfil $ # 1
mentre read line; fare

if [ "$ 2" \u003d\u003d "comprendere"], quindi
quitCon \u003d `echo $ line | grep-c "//-------------------------"`
if [$ quitCon-eq 1]; poi
count \u003d$(($ count + 1))
if [$ count-eq 2]; poi
pausa
fi
fi
fi

status \u003d `echo $ line | grep-c" $ 2 "»
if [$ status-eq 1]; poi
fflag \u003d `$ pattern filtro $ line»
wcnt \u003d `echo $ fflag | wc-l`
if [$ wcnt \u003d\u003d 1], quindi
if [$ exitCnt-ge $ cnt], quindi
if [ "$ mode"! \u003d "2"], quindi
modalità in caso $
"NUM") # numero della linea
echo $ linCnt
;;

"FON") # prima occorrenza numero di riga
echo $ linCnt
uscita
;;

"FOLN") # prima occorrenza LINE
echo $ riga
uscita
;;

"LN") # SOLO LINEE
echo $ riga
;;

*) # DEFAULT
echo $ linCnt: $ line
;;
esac
# echo "Hi"
altro
echo $ linCnt
fi
# $ filterKeywords linea
fi
fi
fi
linCnt \u003d$(($ linCnt + 1))

cnt \u003d$(($ cnt + 1))
# echo $ "---------------------------------------$ cnt exitCnt "
fatto

# echo "Arrivederci!"
 

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 è 05:47 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