Я думаю, что я, возможно, недостаточно хорошо объяснил свой вопрос в первый раз.
Я хочу открыть кучу текстовых и двоичных файлов и отсканировать эти файлы с помощью моего регулярного выражения.Что мне нужно от csv - это взять данные во втором столбце, которые являются путями ко всем файлам, в качестве средства указать, какой файл открыть.
После открытия файла и регулярного выражениясканируется через файл, если он совпадает с чем-либо, он отображается на экране.Я прошу прощения за путаницу и большое спасибо за все!-
Здравствуйте,
Я прошу прощения за вопрос, который, вероятно, является простым вопросом.Я новичок в ruby и буду признателен за любые рекомендации.
Я пытаюсь использовать CSV-файл в качестве индекса для использования других действий.
В частности, у меня есть CSV-файл, который выглядит как:
id, file, description, date
1, /dir_a/file1, this is the first file, 02/10/11
2, /dir_b/file2, this is the second file, 02/11/11
Я хочу открыть каждый файл, определенный в столбце «file», и найти регулярное выражение.
Я знаю, что вы можете определить заголовки в каждом столбце с помощью CSVкласс
require 'rubygems'
require 'csv'
require 'pp'
index = CSV.read("files.csv", :headers => true)
index.each do |row|
puts row ['file']
end
Я знаю, как создать цикл, который открывает каждый файл и выполняет поиск регулярного выражения в каждом файле, и, если он есть, отображает его:
regex = /[0-9A-Za-z]{8,8}-[0-9A-Za-z]{4,4}-[0-9A-Za-z]{4,4}-[0-9A-Za-z]{4,4}-[0-9A-Za-z]{12,12}/
Dir.glob('/home/Bob/**/*').each do |file|
next unless File.file?(file)
File.open(file, "rb") do |f|
f.each_line do |line|
f.each_line do |line|
unless (pattern = line.scan(regex)).empty?
puts "#{pattern}"
end
end
end
end
end
Есть лиспособ, которым я могу использовать содержимое второго столбца в моем CSV-файле в качестве моей переменной, чтобы открыть каждый из файлов, выполнить поиск по регулярному выражению, и, если в файле есть совпадение, вывести строку в CSV, в которой было найдено совпадение сновый csv?
Заранее спасибо !!!!