2012-04-14 16 views
6

Tengo la siguiente asignación:Qué significa " 2" al final de una expresión regular

Las palabras de una canción se encuentran en un archivo llamado stairway.txt. ¿Cuál de las siguientes líneas se imprimirán después de este comando:

grep -E '(^.{4})(.{2}).*[ ]\2' stairway.txt 

(a) Yes, there are two paths you can go by but in the long run 

(b) Its just a spring clean for the May queen. 

(c) Don't be alarmed now. 

(d) If there's a bustle in your hedgerow. 

(e) Theres still time to change the road you're on. 

No entiendo lo que hace el \2 al final significa?

+0

Tener lo intentas? ¿Es esta tarea? – Toto

+0

escalera denegada :) – Robbie

Respuesta

11

Es una referencia inversa.

De http://www.selectorweb.com/grep_tutorial.html:

referencia hacia atrás es una expresión \ n donde n es un número. Coincide con el contenido del nésimo conjunto de paréntesis en la expresión.

Además, la respuesta es (d):

$ grep -E '(^.{4})(.{2}).*[ ]\2' test.txt 
If there's a bustle in your hedgerow. 
Cuestiones relacionadas