Тема: Язык shell
Показать сообщение отдельно

  #8  
Старый 10.01.2007, 21:48
Gh0s7
Участник форума
Регистрация: 23.11.2006
Сообщений: 226
С нами: 10244426

Репутация: 864
По умолчанию

Цитата:
Сообщение от netf0x  
А вот такой вопрос:
есть файл вида:

Interesting ports on 1.1.72.66:
21/tcp filtered ftp
Interesting ports on 1.1.72.67:
21/tcp open ftp
Interesting ports on 1.1.72.68:
21/tcp filtered ftp
Interesting ports on 1.1.72.69:
21/tcp filtered ftp
Interesting ports on 1.1.72.70:
21/tcp open ftp
Interesting ports on 1.1.72.71:
21/tcp filtered ftp
...

не силен в регулярных выражениях((
как на bash отделить в отдельный файл вида iport open???
Я бы сделал это на перле.

Код:
#!/usr/bin/perl

open (IN, "<$ARGV[0]") or die;
while (<IN>) {
  chomp;
  if (/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/) { $was_ip = $&; next; }
  if (/[0-9]{1,5}\/tcp open/) {($port, $foo) = split (/\//, $&); print $port;print "$was_ip:$port\n"; }
}
close IN;
exit 0;