Dec 302013
 

Probabilmente tutti coloro che utilizzano un terminale conoscono il comando grep, dalla sua pagina man:

grep cerca nei file dati in input (o standard input se nessun file viene dato, o se un singolo trattino-meno (-) è dato come nome del file) per le linee che contengono una corrispondenza al modello dato. Per impostazione predefinita, grep stampa le linee corrispondenti.

Quindi questo è lo strumento migliore per cercare all’interno di file di grandi dimensioni per una stringa specifica, o il nome di un processo specifico all’interno dell’elenco completo dei processi in esecuzione, ma ha un piccolo limite, cerca la stringa esatta che si chiede, mentre talvolta potrebbe essere utile fare una ricerca “approssimata” o anche detta “fuzzy”.

Per questo obiettivo il programma agrep è stato sviluppato, da wikipedia possiamo vedere qualche dettaglio di questo software:

agrep (grep approssimativo) è un programma di ricerca di stringhe approssimativo proprietario, sviluppato da Udi Manber e Sun Wu tra il 1988 e il 1991, per l’utilizzo con il sistema operativo Unix. E’ stato poi portato su OS/2, DOS e Windows.

Seleziona l’algoritmo più adatto per la query corrente da una varietà delle più veloci (built-in) algoritmi di ricerca tra stringhe, tra cui Manber e l’algoritmo bitap di Wu basato sulla distanza Levenshtein.

agrep è anche il motore di ricerca nel programma indicizzatore GLIMPSE. agrep è gratuito solo per uso privato e non commerciale, e appartiene alla University of Arizona.

Quindi è closed source, ma per fortuna c’è un’alternativa open source source: tre-agrep

Continue reading »

Flattr this!

Sep 252011
 

I sistemi operativi basati su Unix  come Linux offrono un approccio unico per unire due comandi sul terminale, con esso si può prendere l’output del primo comando e usarlo come input del secondo comando, questo è il concetto di pipe o |. Le Pipes permettono a due processi separati di comunicare tra loro anche se non sono stati creati per farlo, quindi questo apre una serie infinita di opportunità.

Un semplice esempio è:

ls -l | grep rwxrwxrwx

Questo comando stampa l’elenco di tutti i file nella directory locale che hanno permesso rwxrwxrwx (o che hanno rwxrwxrwx nel loro nome).

Continue reading »

Flattr this!

grep per principianti

grep per principianti

grep è un utilissimo comando da utilizzare a terminale per cercare stringhe di testo all’interno di file, il default è quello di stampare tutte le righe che contengono la stringa data. Esempi: grep parola file -> stampa tutte le righe del file che contengono parola. cat file1 | grep parola comando unix |grep parola