Ruby chaîne de recherche dans un fichier et d'impression,
Il a été un temps très long depuis que je l'ai utilisé ruby pour des choses comme ça, mais, j'ai oublié comment ouvrir un fichier, rechercher une chaîne de caractères, et l'impression que ruby trouve. Voici ce que j'ai:
#!/usr/bin/env ruby
f = File.new("file.txt")
text = f.read
if text =~ /string/ then
puts test
end
Je veux déterminer ce que le "document root" (routes) est dans le fichier config/routes.rb
Si j'imprime la chaîne, il imprime le fichier.
Je me sens stupide que je ne me souviens pas ce que c'est, mais j'ai besoin de savoir.
Je l'espère, je peux le faire imprimer cette:
# Route is:
blah blah blah blah
Ne voudriez-vous pas à répéter sur chaque ligne plutôt que la totalité du fichier? Dans tous les cas, une simple recherche sur le web sera de fournir une abondance d'exemples de cette.
OriginalL'auteur | 2012-05-31
Vous devez vous connecter pour publier un commentaire.
Qui sera de retour de la première ligne correspond à l'expression régulière. Si vous voulez tous en correspondance des lignes, changer
trouver
àfind_all
.Il est aussi plus efficace. Il parcourt les lignes une à une, sans les charger tout le fichier en mémoire.
Aussi, le
grep
méthode peut être utilisée:OriginalL'auteur Matheus Moreira
La façon la plus simple d'obtenir la racine est à faire:
Si vous voulez le faire en Ruby, j'irais avec:
rake routes
. Ma seule suggestion serait que l'on devrait utiliser fgrep ougrep --fixed-strings
si on n'est pas d'essayer de faire correspondre une expression régulière.+1 pour
rake routes
.OriginalL'auteur iain
À l'intérieur de
text
vous avez tout le fichier en tant que chaîne de caractères, vous pouvez soit le match contre lui à l'aide d'un.match
avec regexp ou comme Dave Newton a suggéré, vous pouvez simplement effectuer une itération sur chaque ligne et de vérifier.Quelque chose comme:
OriginalL'auteur gmaliar