Jun 082011
 

tux-terminalTutti conoscono (ed amano) grep, ho anche scritto un articolo su di esso, ma oggi vedremo altre piccole utility che hanno alcune cose in comune con esso.

In particolare vi mostrerò: pgrep, grepcidr, ngrep, pdfgrep e taggrepper.

Sono tutti strumenti a linea di comando per essere utilizzati con la vostra shell preferita,vi farò vedere anche qualche esempio di uso con o0gni comando.

pgrep

pgrep è diventato un comando comune per la shell (o almeno così credo), guarda attraverso i processi attualmente in esecuzione ed elenca gli ID dei processi che corrispondono ai criteri di selezione sullo stdout.

Uso base

pgrep command_name

Trova il processo che si sta cercando meno il pgrep stesso.

example :

pgrep ssh
378
1854

L’output darà alcuni PIDs, questo è l’equivalente del comando:

 ps -ef |grep ssh |grep -v grep | awk '{print $2}'
378
1854

Si prega di notare che tutti i criteri devono corrispondere. Per esempio,

pgrep -u root sshd

sarà solo l’elenco dei processi chiamati sshd e di proprietà di root. D’altra parte,

 pgrep -u root,daemon

elencherà i processi di proprietà di root o daemon.

grepcidr

grepcidr può essere utilizzato per filtrare un elenco di indirizzi IP a fronte di una o più specifiche Classless Inter-Domain Routing (CIDR), o reti arbitrarie specificate da un intervallo di indirizzi. Come con grep, ci sono opzioni per invertire il risultato e caricare le stringhe da cercare da un file. grepcidr è in grado di confrontare migliaia o addirittura milioni di indirizzi IP con un utilizzo della memoria ragionevole e in poco tempo di calcolo .

Uso base

grepcidr stringa file

Trova all’interno del file gli indirizzi che corrsipondono alla stringa.

Stringa può assumere i seguenti valori:

Formato CIDR  a.b.c.d/xx
range di IP         a.b.c.d-e.f.g.h
Singolo IP          a.b.c.d

Esempi:

grepcidr -f ournetworks blocklist > abuse.log

Trova i nostri clienti che compaiono in elenchi di IP bloccati

grepcidr 127.0.0.0/8 iplog

Ricerche per tutti gli indirizzi IP locali all’interno del file iplog

grepcidr "192.168.0.1-192.168.10.13" iplog

Ricerche per IP corrispondente all’intervallo indicato nel file iplog

grepcidr -f list1 list2

Riferimenti incrociati tra due elenchi, l’output rappresenta gli IP comuni ad entrambe le liste

ngrep

ngrep si sforza di fornire la maggior parte delle caratteristiche comuni del grep di GNU, applicandole allo strato di rete.
Il programma applica le funzioni di ricerca tipiche di grep sul traffico di rete ed è “pcap-aware”, cioè guarda e cerca (ergo: sniffa) nello specifico dentro i pacchetti di dati.

Uso base
Se lanciato com’è, senza opzioni, ngrep rileverà tutto il nostro traffico di rete istantaneo.
Per essere un più utile è possibile utilizzare i parametri -d per specificare la scheda di rete ed il parametro -p per indicare la porta.

Esempi

ngrep -d en0 port 80

Questo comando mostrerà tutto il traffico in transito su eth0 verso la porta 80.

ngrep -d any 'error' port syslog

Controlla il traffico di rete su tutte le interfaccie verso il syslog cercando l’occorrenza della parola “errore”. ngrep sa come convertire i nomi dei servizi ai numeri di porta (su UNIX, la mappatura che si trova in “/etc/services”) .

pdfgrep

Pdfgrep è uno strumento di ricerca di testo nei file PDF. Funziona in modo analogo a grep, supporta la ricerca per espressioni regolari, il nome del file come output, il numero delle pagine come output, opzionalmente ignora maiuscole/minuscole.

Uso Base

pdfgrep [grep options]   [file ...]

Esempio

#pdfgrep "acer" acer-400.pdf
Versione originale: http://personal.digital.it/prodotti/S1018490/acer-aspire-1400lc.html/scheda.html

E’ possibile usare l’opzione -c per contare il numero di occorrenze o -n per stampare il numero di pagine in cui è contenuta la parola.

taggrepper

taggrepper è un piccolo strumento scritto in maniera simile a “grep” per cercare i tag dei file multimediali. Attualmente, esso può essere utilizzato per cercare con espressioni regolari alcuni o tutti i tag di file MP3, Ogg Vorbis e FLAC. Supporta anche le ricerche ricorsive.

Uso Base
Le opzioni più comuni sono:

--display-title       display title tag of matching files
--display-artist      display artist tag of matching files
--display-album       display album tag of matching files
--display-year        display year tag of matching files
--display-genre       display genre tag of matching files
--display-comment     display comment tag of matching files
--display-track       display track tag of matching files
--display-composer    display composer tag of matching files
--display-orig-artist display orig-artist tag of matching files
--display-copyright   display copyright tag of matching files
--display-url     display url tag of matching files
--display-encoded-by  display encoded-by tag of matching files

Esempi

taggrepper -y 2009 -r *.mp3

Cerca all’interno di tutti i file mp3 quelli con tag 2009 come anno.

taggrepper -r -a Rahman ~/AV/Music_collection/

Trova tutte le canzoni in ~/AV/Music_collection/ che hanno “Rahman” nel loro tag “artista”.

Conclusione

Spero che vi siano piaciute tutte o alcune di queste 5 piccole utility, potete usarle sul terminale e utilizzare un pipe ( | ) per concatenare più comandi.

E’ possibile utilizzare questi comandi anche nei vostri server in web hosting, se avete accesso via SSH. Credeteci o no anche alcune compagnie web hosting ecnomiche danno accessovia SSH, ma la maggior parte delle volte bisogna farne domanda.

Popular Posts:

flattr this!

  6 Responses to “5 comandi simili a grep”

  1. There is also a command called grepmail that will pull an email out of an mbox file that matches
    the search criteria.

  2. See also ack at betterthangrep.com. It’s optimized for programmers.

  3. Is not amazing, only is Linux

  4. > ps -ef |grep ssh |grep -v grep | awk ‘{print $2}’

    The will miss processes (eg. ssh grep@mybox) and is inefficient.
    Use
    ps -ef | grep [s]sh
    instead

 Leave a Reply

(required)

(required)


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>