Проверить, содержит ли файл строку
поэтому я нашел этот вопрос здесь, но у меня проблема с выходом и как справиться с ним с помощью оператора if. Это то, что у меня есть, но он всегда говорит, что это правда, даже если слово монитор не существует в файле
if File.readlines("testfile.txt").grep(/monitor/)
do something
end
Должно ли это быть что-то вроде == "nil"? Я совершенно новичок в ruby и не уверен, что выходы будут.
1 ответов
перечисляемый#grep не возвращает логическое значение; он возвращает массив (как бы у вас был доступ к совпадениям без передачи блока в противном случае?).
если совпадений не найдено, он возвращает пустой массив и []
значение true
. Вам нужно будет проверить размер массива в if
утверждение, т. е.:
if File.readlines("testfile.txt").grep(/monitor/).size > 0
# do something
end
документация должна быть вашим первым ресурсом для таких вопросов.