как в перле считать строки из файла c 3-8 11-16 19-24 и записать их в другой файл?
>как в перле считать строки из файла c 3-8 11-16 19-24 и
>записать их в другой файл?perldoc perlvar
$INPUT_LINE_NUMBER
$NR
$. The current input line number for the last file handle from
which you read (or performed a seek or tell on). The value may
be different from the actual physical line number in the file,
depending on what notion of "line" is in effect--see the
section on $/ on how to affect that. An explicit close on a
filehandle resets the line number. Because "<>" never does an
explicit close, line numbers increase across ARGV files (but
see examples under eof()). Localizing $. has the effect of
also localizing Perl's notion of "the last read filehandle".
(Mnemonic: many programs use "." to mean the current line
number.)
>как в перле считать строки из файла c 3-8 11-16 19-24 и
>записать их в другой файл?perl -ne 'print if (3..8 or 11..16 or 19..24)' filename.txt > result.txt
>>как в перле считать строки из файла c 3-8 11-16 19-24 и
>>записать их в другой файл?
>
>perl -ne 'print if (3..8 or 11..16 or 19..24)' filename.txt > result.txt
СпасибоА как сделать выборку строк по условию 2-х двоеточий?
info1:
180:180:180:180:180:180:180:180:
180:180:180:180:180:180:180:180:
180:180:180:180:180:180:180:180:
180:180:180:180:180:180:180:180:
180:180:180:180:180:180:180:180:
150:120:150:180:180:180:180:180:
info2:
180:180:180:180:180:180:180:180:
180:180:180:180:180:180:180:180:
180:180:180:180:180:180:180:180:
180:180:180:180:180:180:180:180:
180:180:180:180:180:180:180:180:
180:120:120:180:180:180:180:180:
info3:
180:180:180:180:180:180:180:180:
180:180:180:180:180:180:180:180:
180:180:180:180:180:180:180:180:
180:180:180:180:180:180:180:180:
180:180:180:180:180:180:180:180:
180:120:120:180:180:180:180:180:
info4:
>180:180:180:180:180:180:180:180:
>180:180:180:180:180:180:180:180:
>180:120:120:180:180:180:180:180:
>info4:
Выборку я сделал (пока) по такому дикому условию
/...:...:...:...:/;
print "$&$'";
Можно как то это записать в файл?
>>180:180:180:180:180:180:180:180:
>>180:180:180:180:180:180:180:180:
>>180:120:120:180:180:180:180:180:
>>info4:
>Выборку я сделал (пока) по такому дикому условию
>/...:...:...:...:/;if ( @a= m/(;)/g, scalar @a>=2 )
>print "$&$'";
>Можно как то это записать в файл?в предыдущем ответе ты можешь увидеть простейший способ:
"> result.txt"либо
open FILE, ">file.txt";
print FILE "some text";
close FILE;
open FILE, ">file.txt";
print FILE "some text";
close FILE;А если после этого file.txt оказывается пустой, как это объяснить, причём права на запись в него есть
>open FILE, ">file.txt";
>print FILE "some text";
>close FILE;
>
> А если после этого file.txt оказывается пустой, как это объяснить, причём
>права на запись в него есть
>а если file.txt с полным путем указать?
>а если file.txt с полным путем указать?конечно!, я и указываю полный путь, фишка в том что open и print возврвщают единицу, те функции отрабатывают правильно, более того, если в файле file.txt что то было, то после работы скрипта он пустой, те файл открыт для записи, и закрыт последней строкой скрипта как файл размером 0 байт. Вообще страннейшая ситуация, пример хрестоматийный, как Hello world! а работать отказывается
>>>180:180:180:180:180:180:180:180:
>>>180:180:180:180:180:180:180:180:
>>>180:120:120:180:180:180:180:180:
>>>info4:
>>Выборку я сделал (пока) по такому дикому условию
>>/...:...:...:...:/;
>
Немного переделал, получилось вот так:
if (/(\d\d\d[:]){8}/)
{print file "$&\n";}
>Немного переделал, получилось вот так:
>if (/(\d\d\d[:]){8}/)
>{print file "$&\n";}
Квадратные скобки можно было не ставить:)
if (/(\d\d\d:){8}/)