У меня есть файл test_list.txt, содержащий строки с именами файлов.Каждое имя файла содержит дату, когда они были созданы.Вот как это выглядит:
test_list.txt:
UTF_06012018_SAMPLE_Control.xlsx
UTF_06022018_SAMPLE_Control.xlsx
UTF_06092018_SAMPLE_Control.xlsx
UTF_06022018_SAMPLE_Control.xlsx
UTF_06082018_SAMPLE_Control.xlsx
UTF_06032018_SAMPLE_Demand.xlsx
UTF_06092018_SAMPLE_Demand.xlsx
UTF_06122018_SAMPLE_Demand.xlsx
UTF_06032018_SAMPLE_Control.xlsx
UTF_06022018_SAMPLE_Demand.xlsx
Дата в имени файла указывается в формате mmddyyyy.Также есть файлы, которые были созданы в тот же день.Я пытаюсь напечатать строку, соответствующую выражению регулярного выражения для дат, и отсортировать их в алфавитном порядке по дате.
Вот мой код:
path = Dir.glob('/path/to/my/file/*.txt').first
regex = /(\d{1,2}\d{1,2}\d{4})/
samplefile = File.open(path)
string = File.read(samplefile)
string.scan(regex).each do|x|
sorted = x.sort_by { |s| s.scan(/\d+/).first.to_i }
puts sorted
end
Однако,Мой код печатает только даты, а не всю строку.Чтобы добавить к этому, он даже не сортирует их по алфавиту.Как настроить его и сделать так, как я собираюсь?