LINUX.ORG.RU

[Perl] записать найденные вхождения в файл

 


0

1

1.) есть текстовый файл 2.) его содержимое было записано в сколярную переменную для парса 3.) парс успешен найденное вхождение печатается в консоли. вопрос: как это найденное вхождение записать в фвйл я вроде слышал что с помощью open , но как не знаю


#!/usr/bin/perl -wT
use strict;
use 5.010;
use IO::File;
my $input = IO::File->new('/path/to/file/parsing', 'r') or die "Cannot open file: ${!}\n";
my $output = IO::File->new('/path/to/file/result', 'w') or die "Cannot open file: ${!}\n";
while(<$input>){
    m/(.*)/;
    print $output $1;
}
$input->close();
$output->close();
pimiento
()
Ответ на: комментарий от pimiento

Ну или конечно:

perl -le 'while(<>){m/(.*)/;print $1;}' < /path/to/inputfile
А потом уже куда хотите вывод направляйте

pimiento
()

А зачем в скалярную-то? Для этого обычно массивы строк всёж используются,
но это же память съедает - делайте на лету ввод - парсинг построчно - вывод

pimiento
()
Ответ на: комментарий от pimiento

лучше так:

my $pattern='pattern';
while(<$input>){
    while(m/$pattern/g){
        print $output $1;
    }
}

xydo ★★
()

переведи на русский свой вопрос..

arsi ★★★★★
()

> вопрос: как это найденное вхождение записать в фвйл я вроде слышал что с помощью open , но как не знаю
open FILEHANDLE,...;
print FILEHANLE $variable;
close FILEHANDLE;

Подробнее perldoc -f open, perldoc -f print, perldoc -f close.

AITap ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.