<Precedenti | Contenuti | Succ.>
ancore
Il cursore (^) e il simbolo del dollaro ($) i caratteri sono trattati come ancoraggi nelle espressioni regolari. Ciò significa che causano la corrispondenza solo se l'espressione regolare viene trovata all'inizio della riga (^) o alla fine della riga ($):
[io@linuxbox~]$ grep -h '^zip' dirlist*.txt
zip zipcloak zipgrep zipinfo zipnote zipsplit
[io@linuxbox~]$ grep -h 'zip$' dirlist*.txt
gunzip gzip funzip gpg-zip preunzip prezip decomprimere zip
[io@linuxbox~]$ grep -h '^zip$' dirlist*.txt
chiusura
[io@linuxbox~]$ grep -h '^zip' dirlist*.txt
zip zipcloak zipgrep zipinfo zipnote zipsplit
[io@linuxbox~]$ grep -h 'zip$' dirlist*.txt
gunzip gzip funzip gpg-zip preunzip prezip decomprimere zip
[io@linuxbox~]$ grep -h '^zip$' dirlist*.txt
chiusura
Qui abbiamo cercato nell'elenco dei file la stringa "zip" situata all'inizio della riga, alla fine della riga e su una riga in cui si trova sia all'inizio che alla fine della riga (cioè da sola su la linea). Nota che l'espressione regolare '^$' (un inizio e una fine senza nulla in mezzo) corrisponderà alle righe vuote.
Un aiuto per cruciverba
Anche con la nostra conoscenza limitata delle espressioni regolari a questo punto, possiamo fare qualcosa di utile.
Mia moglie adora i cruciverba e a volte mi chiede aiuto per una domanda particolare. Qualcosa del tipo: "Cos'è una parola di cinque lettere la cui terza lettera è 'j' e l'ultima lettera è 'r' che significa...?" Questo tipo di domanda mi ha fatto pensare.
Sapevi che il tuo sistema Linux contiene un dizionario? Lo fa. Dai un'occhiata in /usr/condividi/dice directory e potresti trovarne uno o più. I file del dizionario che si trovano lì sono solo lunghi elenchi di parole, uno per riga, disposti in ordine alfabetico. Sul mio sistema, il parole il file contiene poco più di 98,500
parole. Per trovare possibili risposte alla domanda del cruciverba sopra, potremmo fare questo:
[io@linuxbox~]$ grep -i '^..jr$' /usr/share/dict/words
Maggiore maggiore
Usando questa espressione regolare, possiamo trovare tutte le parole nel nostro file del dizionario che sono lunghe cinque lettere e hanno una “j” nella terza posizione e una “r” nell'ultima posizione.