У меня есть файл с несколькими блоками теста. ДЛЯ КАЖДОГО блока теста я хочу иметь возможность извлечь то, что находится в квадратной скобке, строку, содержащую ПЕРВЫЙ экземпляр слова «площадь», и то, что находится справа от квадратной скобки. Все будет строкой. По сути, я хочу сохранить каждую строку в переменной в хэше, чтобы я мог распечатать ее в CSV-файле с 3 столбцами.
Вот пример того, как выглядит файл:
Учащийся - [K-6] Исключительно в математике
/home/area/kinder/mathadvance.txt, 12
Учащиеся в классе K-12 показали себя исключительными по математике.
Помещено в специальную послешкольную программу.
См. /Home/area/overall/performance.txt, 200
Студент - [младший] Слабая успеваемость
Учащиеся с общей слабой успеваемостью.
Услуги летней программы, предлагаемые, как показано в
"/home/area/services/summer.txt", 212
Студент- [K-6] Временные интервалы физических упражнений
/ home /area / pe / schedule.txt, 303
Назначенные временные интервалы для PE в зависимости от уровня успеваемости ученика. Сделайте ссылку на
/home/area/overall/classtimes.txt, 90
Я хочу получить окончательный CSV-файл, который будет выглядеть так:
Оценка, Тема, Путь
K-6, Исключительно в математике, /home/area/kinder/mathadvance.txt, 12
K-6, Слоты времени для физических упражнений, / home / area / pe / schedule.txt, 303
Junior, Weak Performance, "/home/area/services/summer.txt", 212
Поскольку это CSV-файл, я знаю, что он также будет выделяться в строкечисло при экспорте в Excel, но я в порядке.
Я начал с того, что поместил тип оценки в массив, потому что я хочу иметь возможность добавлять в него больше строк для разных классов.
Моя программа до сих пор выглядит следующим образом:
#!/usr/bin/perl
use strict;
use warnings;
my @grades = ("K-6", "Junior", "Community-College", "PreK");
Я думал, что мне нужно будет выполнить какую-то команду system sed, чтобы взять то, что находится в скобках, и сохранить его впеременная. Затем я возьму все справа от скобки в строке и сохраню в переменной. Затем я найду строку, содержащую «область», чтобы получить путь, и сохраню ее в виде строки в переменной, помещу их в хеш и затем выведу в csv. Я не уверен, правильно ли я думаю об этом. Кроме того, у меня нет идеи, как это сделать для каждого блока текста в файле. Мне нужно это по блокам, потому что у каждого блока есть свои соответствующие оценки, темы и пути.