Questo script che mi appresto a descrivere permette di cercare all'interno di piu' file presenti in una directory e nelle sue sottodirectory delle stringhe.
Ci tengo a precisare che non e' semplicemente
cat * | text | grep -i
oppure
cat * | grep -i
Ma e' uno strumento che oltre all'occorrenza trovata nei file mostra anche il file che lo contiene e credo che sia una buona funzione .
Ad esempio se volessi cercare la stringa java, l'output sarebbe
------------------------------Output
++++++++./src/axisGui/CmdExec.java +++++++++++
import java.io.*;
import java.util.Vector;
^^^^^^^ ./src/axisGui/CmdExec.java ^^^^^^^^^^^^^^^^^
cat: ./src/axisGui/.xvpics: Is a directory
++++++ ./src/axisGui/Frame1.java +++++++++++++++++++
import javax.swing.JFrame;
import java.awt.event.WindowEvent;
import java.awt.Dimension;
-------------------------------output
Dopo aver descritto l'uso e lo scopo di questo algoritmo procediamo a descrivere l'implementazione e quindi il codice
Aprite un terminale eseguite vi header
e scrivete :
#/bin/bash
cat $1| grep -i $2 &> /dev/null
if [ $? == 0 ]; then
echo -e -n "\n+++++++++++++++++ $1 +++++++++++++++++++ \n"
cat $1| grep -i $2
echo -e -n "\n^^^^^^^^^^^^^^^^^ $1 ^^^^^^^^^^^^^^^^^^^ \n"
fi
quindi :wq (uscite e salvate il file)
eseguite
chmod +x header
mv header ~/bin/ (opzionale questo script vi sara' inserito nella vostra path )
e ora abbiamo finito perche basta eseguire
find -name \* -exec header {} \; | less
(se non avete eseguito il comando dovrete inserire tutto il percorso di header)
Spero che sara' utile a qualcuno
Commenti
Inviato da neverdar il Ven, 29/04/2005 - 10:56.
precisazione
per vedere meglio i risultati vi consiglio alla fine della ricerca di muoversi con i tasti direzionali in modo tale che lo stderr verra' eliminato
oppure redirezionare lo standar error &>std.err
SPECTRUM IEEE LA POTENZA E' NULLA SENZA TEORIA DEL CONTROLLO
Inviato da paolo il Ven, 29/04/2005 - 23:05.
Tag di formattazione.
E' praticamente incomprensibile, difficilissima da leggere, ma quanto vi costa utilizzare i tag di formattazione ?!
Voto: 5
Paolo Mainardi - Founder of ILDN
Inviato da neverdar il Lun, 02/05/2005 - 13:08.
Re: Tag di formattazione.
ho inviato una seconda volta la stessa guida con i tag di formattazione anche scusandomi
voto 1 per l'informazione
SPECTRUM IEEE LA POTENZA E' NULLA SENZA TEORIA DEL CONTROLLO
Inviato da junion il Mar, 03/05/2005 - 09:43.
Re: Tag di formattazione.
E' vero che e' mal scritto ma il codice che ha riportato neverdar funziona
Inviato da paulatz il Ven, 10/06/2005 - 15:55.
Re: Tag di formattazione.
Non vedo grossa differenza rispetto a
grep "REGEXP" LISTA_FILES
Inviato da farthest il Mar, 12/07/2005 - 12:05.
Non capisco come funziona!
Ciao
la guida è interessante, per me, soprattutto per l'uso di find con l'opzione exec sono uno studente di tutt'altro che informatica.
il codice
Quote:
io lo farei così
#!/bin/bash<br /><br />if cat $1| grep -i $2 2>/dev/null; then<br /> echo -e -n "\n+++++++++++++++++ $1 +++++++++++++++++++ \n"<br />else<br /> echo -e -n "\n----------------- $1 ------------------- \n"<br />fi
Quote:
beh io preferirei, se non erro
grep -E "REGEXP" LISTA_FILES
Mi spiegate come funziona find!?
dove inserisco la parola da cercare?
bye
My Blog

I like Ubuntu
Inviato da neverdar il Ven, 15/07/2005 - 19:10.
buona risposta
grep -e pattern significa
stampa le righe che corrispondono ad un modello
valuta (evaluate pattern)
-e modello
Usa modello come modello; utile per proteggere i modelli che
iniziano con -.
per usare find
io eseguo
find | grep -i cosa_da_cercare
man grep
man find
contengono interessanti informazioni
SPECTRUM IEEE LA POTENZA E' NULLA SENZA TEORIA DEL CONTROLLO
Inviato da farthest il Sab, 23/07/2005 - 18:47.
Re: buona risposta
Ecco un bel link
grep
Quote:
Scusami ma non ho capito!?
My Blog

I like Ubuntu
Inviato da neverdar il Lun, 01/08/2005 - 14:41.
Re: buona risposta
scusa avevo bevuto troppo poco per scrivere una cosa che avesse senso
credo che sia piu' utile eseguire da linea di comando
man grep
che spiegarti cosa volevo dire
Una volta eseguito man grep puoi
cercare all'interno delle pagine restituite l'opzione -e
(\-e) ed avrai le tue risposte
SPECTRUM IEEE LA POTENZA E' NULLA SENZA TEORIA DEL CONTROLLO
Inviato da Mercurio il Lun, 28/05/2007 - 11:30.
Re: buona risposta
Ho visto che questa guida è un pò vecchia, possibile che nel 2005 grep non supportasse la ricerca ricorsiva come ora? O non ho ben capito lo scopo della guida?
Comunque:
grep -r --include="*.txt" ciao *
output:
prova.txt:ciao
test/Altraprova.txt:ciao mondo
Con nomi di file e tutto, anche su sottodirectory.
Massima Zen:
Se su OpenSuSE qualcosa vuoi configulale,
il pannello di contlollo devi aplile.
(e magari sfogliare la documentazione)