es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Expresión regular: Verificar que el archivo contenga una línea tres veces.

¿Cómo puedo verificar con una expresión regular que un archivo contiene la misma línea “this is 123” (con sangría) exactamente tres veces?

Archivo:

<dev>
  <source file='/path/to/file'/>
  <string>this is 123</string>
</dev>

<dev>
  <source dev='this dev'/>
  <string>this is 123</string>
</dev>

<dev>
  <source dev='another dev'/>
  <string>this is 123</string>
</dev>
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para verificar si un archivo contiene la misma línea “this is 123” exactamente tres veces, con sangrado, puedes utilizar la siguiente expresión regular:

    ^( {2}<string>this is 123</string>\n){3}$
    

    Esta expresión regular hace coincidir líneas que comienzan con dos espacios, seguidos de la cadena especificada y un carácter de salto de línea, repetidos exactamente tres veces. El símbolo de caret (^) y el símbolo de dollar ($) coinciden con el comienzo y el final de la cadena respectivamente, asegurando que la expresión regular coincida solo si el archivo completo contiene exactamente tres líneas que coinciden con el patrón.

    Puedes utilizar esta expresión regular con herramientas como grep, ack o ag para buscar el patrón en un archivo o en un directorio de forma recursiva. Por ejemplo, para buscar el patrón en todos los archivos del directorio actual y sus subdirectorios, puedes usar:

    grep -rE '^( {2}<string>this is 123</string>\n){3}$' .
    

    Esto mostrará los nombres de todos los archivos que contienen el patrón exactamente tres veces.

Comments are closed.