The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"считывание избранных строк и запись в файл в Perl"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"считывание избранных строк и запись в файл в Perl"
Сообщение от Purple emailИскать по авторуВ закладки(??) on 08-Апр-04, 07:36  (MSK)
как в перле считать строки из файла c 3-8 11-16 19-24 и записать их в другой файл?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "считывание избранных строк и запись в файл в Perl"
Сообщение от alchie Искать по авторуВ закладки(ok) on 08-Апр-04, 07:41  (MSK)
>как в перле считать строки из файла 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.)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "считывание избранных строк и запись в файл в Perl"
Сообщение от pth Искать по авторуВ закладки(??) on 08-Апр-04, 08:30  (MSK)
>как в перле считать строки из файла c 3-8 11-16 19-24 и
>записать их в другой файл?

perl -ne 'print if (3..8 or 11..16 or 19..24)' filename.txt > result.txt

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "считывание избранных строк и запись в файл в Perl"
Сообщение от Purple emailИскать по авторуВ закладки(??) on 08-Апр-04, 08:56  (MSK)
>>как в перле считать строки из файла 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:

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "считывание избранных строк и запись в файл в Perl"
Сообщение от Purple emailИскать по авторуВ закладки(??) on 08-Апр-04, 11:26  (MSK)
>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 "$&$'";
Можно как то это записать в файл?


  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "считывание избранных строк и запись в файл в Perl"
Сообщение от alchie Искать по авторуВ закладки(ok) on 08-Апр-04, 13:17  (MSK)
>>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;

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "считывание избранных строк и запись в файл в Perl"
Сообщение от magadan emailИскать по авторуВ закладки(ok) on 08-Апр-04, 16:40  (MSK)
open FILE, ">file.txt";
print FILE "some text";
close FILE;

А если после этого file.txt оказывается пустой, как это объяснить, причём права на запись в него есть
  

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "считывание избранных строк и запись в файл в Perl"
Сообщение от alchie Искать по авторуВ закладки(ok) on 09-Апр-04, 02:54  (MSK)
>open FILE, ">file.txt";
>print FILE "some text";
>close FILE;
>
> А если после этого file.txt оказывается пустой, как это объяснить, причём
>права на запись в него есть
>

а если file.txt с полным путем указать?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "считывание избранных строк и запись в файл в Perl"
Сообщение от magadan emailИскать по авторуВ закладки(ok) on 09-Апр-04, 16:21  (MSK)
>а если file.txt с полным путем указать?

конечно!, я и указываю полный путь, фишка в том что open и print возврвщают единицу, те функции отрабатывают правильно, более того, если в файле file.txt что то было, то после работы скрипта он пустой, те файл открыт для записи, и закрыт последней строкой скрипта как файл размером 0 байт. Вообще страннейшая ситуация, пример хрестоматийный, как Hello world! а работать отказывается

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "считывание избранных строк и запись в файл в Perl"
Сообщение от Purple emailИскать по авторуВ закладки(??) on 14-Апр-04, 13:56  (MSK)
>>>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";}
  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "считывание избранных строк и запись в файл в Perl"
Сообщение от Purple emailИскать по авторуВ закладки(??) on 14-Апр-04, 14:02  (MSK)
>Немного переделал, получилось вот так:
>if (/(\d\d\d[:]){8}/)
>{print file "$&\n";}
Квадратные скобки можно было не ставить:)
if (/(\d\d\d:){8}/)


  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру