<Precedenti | Contenuti | Succ.>
ancore
Il segno di inserimento (^) e il simbolo del dollaro ($) i caratteri sono trattati come ancoraggi nelle espressioni regolari. Ciò significa che la corrispondenza avviene solo se l'espressione regolare si trova 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 unzip 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 unzip zip
[io@linuxbox~]$ grep -h '^zip$' dirlist*.txt
chiusura
Qui abbiamo cercato nell'elenco dei file la stringa "zip" che si trova all'inizio della riga, alla fine della riga e in una riga in cui si trova sia all'inizio che alla fine della riga (ovvero, da sola sulla riga). Si noti che l'espressione regolare '^$' (un inizio e una fine senza nulla in mezzo) troverà le righe vuote.
Un aiuto per le parole crociate
Anche con la nostra conoscenza limitata delle espressioni regolari, possiamo fare qualcosa di utile.
Mia moglie adora i cruciverba e a volte mi chiede aiuto con una domanda in particolare. Qualcosa tipo: "Qual è una parola di cinque lettere la cui terza lettera è 'j' e l'ultima lettera è 'r' che significa...?". Questo tipo di domanda mi ha fatto riflettere.
Sapevi che il tuo sistema Linux contiene un dizionario? È così. Dai un'occhiata al /usr/share/dict directory e potresti trovarne uno, o più. I file del dizionario che si trovano lì sono solo lunghi elenchi di parole, una per riga, disposte 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 qui sopra, potremmo fare così:
[io@linuxbox~]$ grep -i '^..jr$' /usr/share/dict/words
Maggiore maggiore
Utilizzando questa espressione regolare, possiamo trovare tutte le parole nel nostro file di dizionario che sono lunghe cinque lettere e hanno una "j" nella terza posizione e una "r" nell'ultima posizione.