Guida al comando Grep

By | March 27, 2013

Il comando Grep ricerca all’interno di un file una determinata stringa! E’ un comando fondamentale per amministrare un sistema GNU\Linux. Vediamo come utilizzarlo e sfruttare le sue opzioni.

Di seguito alcuni esempi per capire meglio.

Esempio 1

# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash

In questo esempio abbiamo cercato la parola “root” all’interno del file /etc/passwd, file che contiene la lista degli utenti presenti nel sistema.

Esempio 2

# grep -n root /etc/passwd
1:root:x:0:0:root:/root:/bin/bash

Questo esempio, mostra oltre alla riga dove presente la parola “root”, il numero della riga del file.

Esempio 3

# grep -v bash /etc/passwd | grep -v nologin
bin:x:1:1:bin:/bin:/bin/false
daemon:x:2:2:daemon:/sbin:/bin/false
mail:x:8:12:mail:/var/spool/mail:/bin/false
ftp:x:14:11:ftp:/srv/ftp:/bin/false
http:x:33:33:http:/srv/http:/bin/false
nobody:x:99:99:nobody:/:/bin/false
dbus:x:81:81:System message bus:/:/bin/false
avahi:x:84:84:avahi:/:/bin/false
ntp:x:87:87:Network Time Protocol:/var/lib/ntp:/bin/false

Questo esempio mostra gli utenti che non sono in bash (-v bash) escludendo anche gli utenti “nologin”

Esempio 4

# grep -c false /etc/passwd
2

Questo comando invece, conta gli utenti che hanno /bin/false come shell

Esempio 5

# grep ^root /etc/passwd
root:x:0:0:root:/root:/bin/bash

mostra tutte le righe che iniziano con root

Esempio 6

# grep '\<r..t\>' /etc/passwd
root:x:0:0:root:/root:/bin/bash

Questo invece, utilizzando le espressioni regolari, mostra tutte le parole composte da “4” cifre che iniziano con “r” e finiscono con “t“, all’interno del file passwd.

Esempio 7

# grep '\<r.*t\>' /etc/passwd
root:x:0:0:root:/root:/bin/bash
rtkit:x:133:133:RealtimeKit:/proc:/sbin/nologin

al contrario, verranno visualizzate tutte le parole che iniziano con “r” e finiscono con “t“.

Esempio 8

# grep -i "RoOt" /etc/passwd
root:x:0:0:root:/root:/bin/bash

con l’opzione (-i) si cercheranno all’interno del file parole sia minuscole che maiuscole.

Esempio 9

# grep -v "#" /etc/httpd/conf/httpd.conf | grep -v  "^$"

visualizza il file httpd.conf stampando a schermo solo le righe di configurazione, togliendo i commenti che iniziano con “#” e tutte le righe vuote.