File.open(filename).grep(/string/)
Это загружает весь файл в память.
Если вы имеете дело с большими файлами, предпочтите их прихлебывать.
Это означает загрузку по одной строке за раз вместо целого файла.
File.foreach(filename).grep(/string/)
Хорошая практика - убирать за собой, а не позволять сборщику мусора справляться с этим в какой-то момент. Это более важно, если ваша программа долгоживущая, а не какой-то быстрый скрипт. Использование блока кода гарантирует, что объект File
будет закрыт после завершения блока.
File.foreach(filename) do |file|
file.grep(/string/)
end