Cercare stringhe in piu' file con un solo script bash

Mar, 26/04/2005 - 16:48

Cercare stringhe in piu' file con un solo script bash

Inviato da neverdar 11 commenti

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


In:



Commenti

Ritratto di neverdar
#1

Inviato da neverdar il Ven, 15/07/2005 - 19:32.

Correzione

dove aver scritto header e averlo inserito nella vostra path
(ad esempio ~/bin/)
eseguite
find -name \* -exec header{} cosa_dovete_cercere \; | less

prima nella guida avevo scritto <cosa_dovete_cercere>
forse e' stato considerato un tag

scusatemi

complimenti a chi ha capito dell'assenza del parametro

SPECTRUM IEEE LA POTENZA E' NULLA SENZA TEORIA DEL CONTROLLO