En less
, ¿puedes buscar usando /un patrón que contenga un retorno de carro y una nueva línea? Sé que su patrón puede terminar con una línea usando $
( ¿Cómo incluyo nuevas líneas en una búsqueda en menos? ), Pero necesito que el patrón coincida con el texto que abarca varias líneas.
Lo intenté \n
, pero eso solo busca el n
personaje.
\n+
1 o más líneas nuevas?less
(search.c:search_range()
). La operación de búsqueda / coincidencia se realiza en una sola línea delimitada por una nueva línea a la vez, por lo que no puede hacer coincidir los límites de la línea. Consulteline.c:forw_raw_line()
para la implementación de "readline" como lo solicitósearch_range
.Respuestas:
No es posible hacer coincidir los límites de la línea, porque la función de búsqueda en
less
opera en una sola línea delimitada por una nueva línea a la vez. Este es el caso independientemente de la implementación de expresiones regulares del sistema (GNU, POSIX, PCRE, etc.).Tenga en cuenta que no pude encontrar un repositorio fuente oficial para el desarrollo de la línea principal
less
, pero para fines de revisión de código aquí, los enlaces que siguen son del árbol contrib FreeBSD.Consulte search.c: search_range () para la implementación de la operación de búsqueda. El bucle allí llama a line.c: forw_raw_line () para recuperar el siguiente bloque de contenido delimitado por nueva línea. Ese bloque se pasa a match.c: match_pattern () donde se ejecuta el patrón de búsqueda (expresión regular).
Para hacer coincidir varias líneas, deberá utilizar una herramienta diferente. Una opción es ingresar a su editor y usar sus capacidades de búsqueda como lo sugieren otros. Puede invocar el editor pulsando
v
enless
.fuente
No estoy seguro de cómo hacerlo
less
, pero puede lograr lo mismo envim
.http://vim.wikia.com/wiki/Search_across_multiple_lines
El átomo
\\_.
encuentra cualquier carácter, incluido el final de línea. El multi\\{-}
coincide lo menos posible.fuente
less
está utilizando laed
sintaxis regex y desafortunadamente no admite la coincidencia de varias líneas.https://www.gnu.org/software/gnulib/manual/html_node/ed-regular-expression-syntax.html#ed-regular-expression-syntax
Esperaba encontrar eso también, o al menos encontrar si este bit de sintaxis se utilizó en
less
:Entonces puedo usar el
.+
patrón para unir nuevas líneas. Pero no, no lo hace.fuente