Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Статистика из текстового файла 
:(
    Опции темы
MasteRaf
  Дата 3.7.2007, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 3.7.2007

Репутация: нет
Всего: нет



Есть текстовый файл с инфой:
-----\\------
.................tcp 10.64.66.4(0) -> 89.111.180.41(0)
-----\\------
в скобках номер порта. Надо вывести инфу (лучше в файл), какие использовались порты (без повтора желательно). Для гуру наверное это несложно, 5 сек. Помогите (или подскажите)

P.S. Вчера впервые узнал, что такое Perl
PM MAIL   Вверх
Nab
Дата 3.7.2007, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



По тем данным что вы привели, то вот...
Код

my %ports;
foreach (<>) {
  $ports{$1}++ if /\((\d+)\)\s*$/
}
print join ' ', keys %ports;



--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
MasteRaf
Дата 3.7.2007, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 3.7.2007

Репутация: нет
Всего: нет



Спасибо, Nab. Вот я в текстовый загнал, что надо изменить, чтоб заработало?

Код

#!/usr/bin/perl -w

print "What file? ";

chomp($filename = <STDIN>);

open(THATFILE, "$filename");
my %ports;

foreach (<THATFILE>) {
  $ports{$1}++ if /\((\d+)\)\s*$/
}
print join ' ', keys %ports;

PM MAIL   Вверх
JAPH
Дата 3.7.2007, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 8.1.2007
Где: Ленобласть

Репутация: 3
Всего: 23



А зачем \s*$ ? Может, просто /\((\d+)\)/ ?


--------------------
Что непонятно - спрашиваем smile
PM MAIL ICQ   Вверх
dimes
Дата 3.7.2007, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 249
Регистрация: 20.7.2004
Где: то около СПБ

Репутация: нет
Всего: 14



Вообще много не понятно.
- Формат файлы только интуитивно угадывается, скорее всего Nab угадал но все же нужно уточнить
- использовались порты чего? Клиента? Сервера? Обоих? В примере Nab учитываются только, как я предполагаю, порты клиента.

PM ICQ   Вверх
MasteRaf
Дата 3.7.2007, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 3.7.2007

Репутация: нет
Всего: нет



Цитата

Вообще много не понятно.
- Формат файлы только интуитивно угадывается, скорее всего Nab угадал но все же нужно уточнить
- использовались порты чего? Клиента? Сервера? Обоих? В примере Nab учитываются только, как я предполагаю, порты клиента.


 - файлы .txt
 - порты обоих
PM MAIL   Вверх
Nab
Дата 3.7.2007, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



Обыкновенно порт клиента нафиг не нужен, он зачастую случаен и никакой смысловой нагрузки не несет, скорее всего нужны порты куда был коннект, именно их я и отбирал...

Если нужны обое, то JAPH подсказывает верно...

MasteRaf, создайте файлик с таким содержимым, 
Код

my %ports;
while (<>) {
  $ports{$1}++ while(/\((\d+)\)/g)
}
print join ' ', keys %ports;

и вызывайте его
script.pl logfile.txt


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
MasteRaf
Дата 3.7.2007, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 3.7.2007

Репутация: нет
Всего: нет



содержимое я вставил в файл script.pl
зашел в пуск\выполнить\cmd
Выходит черное окно с путём C:\Documents and Settings\User>
Туда впечатываю:  script.pl logfile.txt
Оба файла лежат в этой директории. Выдаёт мене: "Can't open logfile.txt: No such file or directory at C:\Documents and Settings\User\script.pl line 2."
Мож потому что я в Винде ХР, а не в UNIX?
PM MAIL   Вверх
nitr
Дата 3.7.2007, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



MasteRaf, нет... потому что...
введите  cmd и переходите в папку где лежат ваши файлы...


--------------------
PM   Вверх
MasteRaf
Дата 3.7.2007, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 3.7.2007

Репутация: нет
Всего: нет



Код

введите  cmd и переходите в папку где лежат ваши файлы...


а можно тут поподробнее (как для совсем тупых) - куда ввести? в Пуск\выполнить
PM MAIL   Вверх
nitr
Дата 3.7.2007, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



MasteRaf, да... 
потом ДОС-командами перейти в вашу папку... или если их не знаете - скопируйте ваши файлы в ту папку что укажет cmd =)



--------------------
PM   Вверх
MasteRaf
Дата 3.7.2007, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 3.7.2007

Репутация: нет
Всего: нет



Всё равно не прёт (я в принципе тоже самое до этого и делал)
PM MAIL   Вверх
Nab
Дата 3.7.2007, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 26
Всего: 37



вызывайте так
perl script.pl logfile.txt


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
JAPH
Дата 3.7.2007, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 8.1.2007
Где: Ленобласть

Репутация: 3
Всего: 23



Код
cd /d d:\path\to\files
z:\usr\bin\perl script.pl logfile.txt




--------------------
Что непонятно - спрашиваем smile
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0625 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.