<Anterior | Contenido | Siguiente>
anclas
El signo de intercalación^) y el signo de dólar ($) los personajes se tratan como anclas en expresiones regulares. Esto significa que hacen que la coincidencia se produzca solo si la expresión regular se encuentra al principio de la línea (^) o al final de la línea ($):
[yo @ linuxbox ~] $ grep -h '^ zip' dirlist * .txt
zip zipcloak zipgrep zipinfo zipnote zipplit
[yo @ linuxbox ~] $ grep -h 'zip $' dirlist * .txt
gunzip gzip funzip gpg-zip preunzip prezip descomprimir zip
[yo @ linuxbox ~] $ grep -h '^ zip $' dirlist * .txt
Código Postal
[yo @ linuxbox ~] $ grep -h '^ zip' dirlist * .txt
zip zipcloak zipgrep zipinfo zipnote zipplit
[yo @ linuxbox ~] $ grep -h 'zip $' dirlist * .txt
gunzip gzip funzip gpg-zip preunzip prezip descomprimir zip
[yo @ linuxbox ~] $ grep -h '^ zip $' dirlist * .txt
Código Postal
Aquí buscamos en la lista de archivos la cadena "zip" ubicada al principio de la línea, al final de la línea y en una línea donde está al principio y al final de la línea (es decir, por sí misma en la línea). Tenga en cuenta que la expresión regular '^ $' (un principio y un final sin nada en el medio) coincidirá con las líneas en blanco.
Un ayudante de crucigramas
Incluso con nuestro conocimiento limitado de las expresiones regulares en este momento, podemos hacer algo útil.
A mi esposa le encantan los crucigramas y a veces me pide ayuda con una pregunta en particular. Algo como, "¿Qué es una palabra de cinco letras cuya tercera letra es 'j' y la última letra es 'r' que significa ...?" Este tipo de pregunta me hizo pensar.
¿Sabía que su sistema Linux contiene un diccionario? Lo hace. Eche un vistazo en el / usr / share / dict directorio y puede encontrar uno o varios. Los archivos de diccionario ubicados allí son solo largas listas de palabras, una por línea, ordenadas alfabéticamente. En mi sistema, el palabras el archivo contiene algo más de 98,500
palabras. Para encontrar posibles respuestas a la pregunta del crucigrama anterior, podríamos hacer esto:
[yo @ linuxbox ~] $ grep -i '^ .. jr $' / usr / share / dict / words
Mayor mayor
Usando esta expresión regular, podemos encontrar todas las palabras en nuestro archivo de diccionario que tienen cinco letras de largo y tienen una “j” en la tercera posición y una “r” en la última posición.