Название говорит само за себя. Я только хочу знать, существует ли она, а не там, где она есть. Есть ли один лайнер для достижения этого?Каков наилучший способ поиска строки в файле?
ответ
File.open(filename).grep(/string/)
Это загружает весь файл в память. Если вы имеете дело с большими файлами, предпочитайте их разрывать.
Это означает, что загрузка одной строки за раз, а не весь файл.
File.foreach(filename).grep(/string/)
Это хорошая практика, чтобы очистить после себя, а не позволить сборщику мусора обрабатывать его в какой-то момент. Это более важно, если ваша программа долговечна, а не просто быстрый скрипт. Использование блока кода гарантирует, что объект File
будет закрыт, когда блок завершится.
File.foreach(filename) do |file|
file.grep(/string/)
end
Это фактически утечка дескриптора файла, который может вызвать серьезную проблему. Вот более чистая альтернатива, которая закроет файл после его использования.'open ('some.txt') {| f | f.grep (/ string /)} ' –
А также приводит к загрузке всего файла в память. 'open (" some.txt ") {| f | f.each_line.detect {| line | /re/.match(line)}} ' – rewritten
-1, потому что по какой-то причине он возвращает false, когда он должен быть истинным. Изучение причин. – kgpdeveloper
grep for foo OR bar ИЛИ baz, украденный от ruby1line.txt.
$ ruby -pe 'next unless $_ =~ /(foo|bar|baz)/' < file.txt
Ну, кажется eed3si9n имеет один лайнер вниз, вот уже решение:
f = File.new("file.txt")
text = f.read
if text =~ /string/ then
#relevant code
end
Вам нужно указать ваше имя файла. –
Да, только что заметил, когда вы разместили этот –
однострочный: 'независимо (x), если File.read (" file.txt ") = ~/regex /' – rampion
Если ваша операционная система имеет пакет Grep, вы могли бы использовать системный вызов:
system("grep meow cat_sounds.txt")
Это вернет true, если grep
ничего не возвращает, если это не так.
Если вы обнаружили себя в системе с grep
, вы можете найти это «лучший» способ, потому что Ruby может быть медленным, когда дело доходит до файловых операций.
, он не указал его os yet = \ –
Я думаю, что лучше всего предположим, что он здравомыслящий. –
Довольно забавно, что это был файл rakefile, который я создавал, когда я придумал этот вопрос, поэтому я могу даже перераспределить это на sh «grep meow cat_sounds.txt» :-) – ChrisInCambo
Это читает файл только первого появления «строка» и обрабатывает его построчно - не читает весь файл сразу.
def file_contains_regexp?(filename,regexp)
File.foreach(filename) do |line|
return true if line =~ regexp
end
return false
end
- 1. Каков наилучший способ реализации поиска?
- 2. Каков наилучший способ для поиска?
- 3. Каков наилучший способ поиска GitHub?
- 4. Каков наилучший способ подстроки в пакетном файле?
- 5. Каков наилучший способ поиска 2GiB в C?
- 6. Каков наилучший способ проверки строки?
- 7. Каков наилучший алгоритм поиска точки в файле изображения?
- 8. Каков наилучший способ поиска определенного тега?
- 9. Каков наилучший способ поиска нескольких источников одновременно?
- 10. Каков наилучший способ обработки нескольких вариантов поиска?
- 11. Каков наилучший способ создания поиска whois?
- 12. bash - Каков наилучший способ подсчета результатов поиска?
- 13. Каков наилучший способ поиска столбца Oracle CLOB?
- 14. Каков наилучший способ поиска/поиска точки в векторе точек?
- 15. Каков наилучший способ форматирования строки в Scala?
- 16. Каков наилучший способ удаления строки в CursorAdapter?
- 17. Каков наилучший способ преобразования строки в float?
- 18. Каков наилучший способ tokenize строки в C++?
- 19. Каков наилучший способ поиска Long datatype в базе данных Oracle?
- 20. Каков наилучший способ жесткого кодирования многострочной строки?
- 21. Каков наилучший способ шифрования/дешифрования строки json
- 22. Каков наилучший способ регистрации Исключения для строки
- 23. Каков наилучший способ использования таблиц поиска в QlikView?
- 24. Каков наилучший способ удалить HTML из строки?
- 25. Каков наилучший способ анализа интервала из строки?
- 26. Каков наилучший способ разбора строки друзей Facebook?
- 27. Каков наилучший способ desirialize этой строки json?
- 28. Каков наилучший способ перебора строк строки Java?
- 29. Каков наилучший способ разделения строки подключения ldap?
- 30. Каков наилучший способ удаления фрагментов строки? (C#)
извините, мне понравился ваш вопрос, но, пожалуйста, переименуйте его. Я был пойман в функции функции «обнаружить» (возврат первого элемента, не все, мм) – gaussblurinc