El título habla por sí solo en realidad. Solo quiero saber si existe, no dónde está. ¿Hay un trazador de líneas para lograr esto?¿Cuál es la mejor manera de buscar una cadena en un archivo?
Respuesta
File.open(filename).grep(/string/)
Esto carga todo el archivo en la memoria. Si está tratando con archivos de gran tamaño, prefiera sorberlos.
Eso significa cargar una línea a la vez, en lugar de todo el archivo.
File.foreach(filename).grep(/string/)
Es una buena práctica para limpiar después de ti mismo en lugar de dejar que el recolector de basura manejarlo en algún momento. Esto es más importante si su programa es de larga duración y no solo un script rápido. El uso de un bloque de código garantiza que el objeto File
se cierre cuando finaliza el bloque.
File.foreach(filename) do |file|
file.grep(/string/)
end
Esto realmente filtra un descriptor de archivo que podría causar un problema grave. Aquí hay una alternativa más limpia que cerrará el archivo después de ser utilizado.'open ('some.txt') {| f | f.grep (/ string /)} ' –
Y también lleva a cargar todo el archivo en la memoria. 'open (" some.txt ") {| f | f.each_line.detect {| line | /re/.match(line)}} ' – rewritten
-1 porque por alguna razón devuelve falso cuando debería ser cierto. Investigando por qué. – kgpdeveloper
grep for foo O bar O baz, robado de ruby1line.txt.
$ ruby -pe 'next unless $_ =~ /(foo|bar|baz)/' < file.txt
Pues parece eed3si9n tiene un trazador de líneas abajo, aquí está la solución a más largo:
f = File.new("file.txt")
text = f.read
if text =~ /string/ then
#relevant code
end
Debe citar el nombre de su archivo. –
sí acabo de notar mientras publicaste este –
one-liner: 'lo que sea (x) si File.read (" file.txt ") = ~/regex /' – rampion
Si su sistema operativo tiene un paquete grep, se puede utilizar una llamada al sistema:
system("grep meow cat_sounds.txt")
Esto devolverá verdadero si grep
devuelve algo, falso si no lo hace.
Si se encuentra en un sistema con grep
, puede encontrar que esta es la "mejor" forma porque Ruby puede ser lento cuando se trata de operaciones de archivos.
no ha especificado su sistema operativo todavía = \ –
Creo que es mejor asumir que está cuerdo. –
Curiosamente, era un archivo de búsqueda que estaba creando cuando surgió esta pregunta, así que incluso puedo volver a factorizar esto para sh "grep meow cat_sounds.txt" :-) – ChrisInCambo
Esto lee el archivo sólo a la primera aparición de 'cadena' y procesa línea por línea - no leer todo el archivo a la vez.
def file_contains_regexp?(filename,regexp)
File.foreach(filename) do |line|
return true if line =~ regexp
end
return false
end
- 1. ¿Cuál es la mejor manera de buscar GitHub?
- 2. ¿Cuál es la mejor manera de dividir una cadena por un delimitador de manera funcional?
- 3. ¿Cuál es una mejor manera de verificar si una cadena es un número entero en iPhone?
- 4. ¿Cuál es la mejor manera de convertir Cadena a ByteString
- 5. ¿Cuál es la mejor manera de contraer las filas de un SELECT en una cadena?
- 6. ¿Cuál es la mejor manera de buscar en HTML en una cadena C# para texto específico y marcar el texto?
- 7. ¿cuál es la mejor manera de editar el archivo csv
- 8. ¿Cuál es la mejor manera de escribir una matriz corta [] en un archivo en C#?
- 9. ¿Cuál es la mejor manera de declarar una variable global?
- 10. ¿Cuál es la mejor manera de leer un archivo completo en std :: string en C++?
- 11. ¿Cuál es la mejor manera de hacer una subcadena en un archivo por lotes?
- 12. ¿Cuál es la mejor manera de truncar el comienzo de un archivo en C?
- 13. ¿Cuál es la mejor manera de verificar si una cadena contiene una URL en Java/Android?
- 14. ¿Cuál es la mejor manera de escribir en un archivo en un hilo paralelo en Java?
- 15. ¿Cuál es la mejor manera de escribir un archivo grande en un disco en PHP?
- 16. ¿Cuál es la mejor manera de escribir los contenidos de un StringIO en un archivo?
- 17. ¿Cuál es la mejor manera de dibujar en la consola?
- 18. ¿Cuál es la mejor manera de enviar un archivo a través de una red usando C#?
- 19. ¿Cuál es la mejor manera de analizar una gramática simple?
- 20. ¿Cuál es la mejor manera de asegurar una cadena de conexión de base de datos?
- 21. ¿Cuál es la mejor manera de analizar una cadena de palabras "malas" en C#?
- 22. ¿Cuál es la mejor manera de escapar de caracteres específicos de HTML en una cadena (PowerShell)?
- 23. ¿Cuál es la mejor manera de eliminar acentos en una cadena unicode de Python?
- 24. ¿Cuál es la mejor manera de verificar si una cadena existe en otra?
- 25. ¿Cuál es la mejor manera de encriptar una cadena muy corta en PHP?
- 26. ¿Cuál es la mejor manera de buscar un valor de diccionario de Python en una lista de diccionarios?
- 27. ¿Cuál es la mejor manera de permitir que un usuario busque un archivo en C#?
- 28. Cuál es la mejor manera de autorizar una llave USB
- 29. C# en VS2005: ¿cuál es la mejor manera de verificar si una cadena está vacía?
- 30. ¿Cuál es la mejor manera de deducir una mesa?
lo siento, me gusta su pregunta, pero, por favor, cambie el nombre. Estaba atrapado en la especialidad de la función 'detectar' (devolver el primer elemento, no todos, uh) – gaussblurinc