Разбор текстовых файлов - одна из причин, по которой Perl делает отличный инструмент для анализа данных и создания сценариев.
Как вы увидите ниже, Perl можно использовать для переформатирования группы текста. Если вы посмотрите вниз на первый фрагмент текста, а затем на последнюю часть внизу страницы, вы увидите, что код в середине - это то, что преобразует первый набор во второй.
Как разобрать текстовые файлы
В качестве примера давайте создадим небольшую программу, которая открывает файл данных, разделенный табуляцией, и разбирает столбцы на то, что мы можем использовать.
Скажем, в качестве примера, что ваш начальник вручает вам файл со списком имен, электронных писем и телефонных номеров и хочет, чтобы вы прочитали файл и сделать что-то с информацией, например, положить его в базу данных или просто распечатать в красиво отформатированном отчет.
Столбцы файла разделены символом TAB и будут выглядеть примерно так:
Ларри Ларри@example.com 111-1111
Вьющиеся вьющиеся@example.com 222-2222
Moe [email protected] 333-3333
Вот полный список, с которым мы будем работать:
#! / USR / бен / Perl
открыть (FILE, 'data.txt');
пока () {
чавкать;
($ name, $ email, $ phone) = split ("\ t");
выведите «Name: $ name \ n»;
распечатать «Электронная почта: $ email \ n»;
распечатать "Phone: $ phone \ n";
напечатайте "\ n";
}
закрыть (ФАЙЛ);
выход;
Замечания: Это тянет некоторый код из учебника на как читать и писать файлы в Perl.
То, что он делает в первую очередь, это открыть файл называется data.txt (он должен находиться в том же каталоге, что и скрипт Perl). Затем он читает файл в переменную catchall $ _ построчно. В этом случае $ _ подразумеваемые и на самом деле не используется в коде.
После прочтения в строке любой пробел chomped с конца этого. Затем функция разделения используется для разбиения строки на символе табуляции. В этом случае вкладка представлена кодом \ т. Слева от знака разделения вы увидите, что я назначаю группу из трех разных переменных. Они представляют один для каждого столбца строки.
Наконец, каждая переменная, которая была отделена от строки файла, печатается отдельно, чтобы вы могли видеть, как получить доступ к данным каждого столбца в отдельности.
Вывод скрипта должен выглядеть примерно так:
Имя: Ларри
Электронная почта: [email protected]
Телефон: 111-1111
Имя: Кудрявый
Электронная почта: [email protected]
Телефон: 222-2222
Имя: Мо
Электронная почта: [email protected]
Телефон: 333-3333
Хотя в этом примере мы просто распечатываем данные, было бы несложно сохранить эту же информацию, проанализированную из файла TSV или CSV, в полноценной базе данных.