Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
Perl: пишем свой grep
 
#!/usr/bin/perl -w
# ©oded by Gilgamesh 2003
# Cool-grep©
# Special Windows edition

use strict;

my $counter = 0;
print "Input the directory name: ";
my $dir = <STDIN>; chomp $dir;
print "Input the template to search: ";
my $pat = <STDIN>; chomp $pat;
my ($file);
opendir (DIR, $dir) || die "Error, while opening directory $dir: $!\n";
while ($file =readdir DIR)
{
next if (-d "$dir/$file");
if ( ! open (FILE, "$dir/$file"))
{
next
}
while(<FILE>)
{
if (/$pat/)
{
print "Line found in \'$file\' -- $_\n";
$counter++;
}
}

close(FILE);
}
print "$counter files were found during the search...\n";
close(DIR);

Кому интересно утилита вроде grep под вин. Я несколько урезал некоторые функции которые есть в grep - просто пример реализации подобных вещей "на коленке".
 
Да, если кто нить особо ленивый в качестве директории указывает 'C:\' и получает отрицательный результат, то:

1. Учите перл. :)

2. Пропишите 'C:\ ' вместо 'C:\'.
 
===moderator hat on===

Gilgamesh, прочти, пожалуйста, следующие: Тематика раздела. Там ясно сказано, что

[spoiler]
Также недопустимы топики, где участники форума публикуют написанный ими код «просто так».

Публикации кода могут сопровождаться просьбой, проверить его на переполнение буфера, уязвимости типа «SQL Injection», отсутствие дополнительных фильтров и т.п.
[spoiler]

В твоём публикации, я такой цели не вижу, но ничего с твоим постом делать не буду, т.к. эти ограничения были написаны после твоей публикации. Но это на первый раз.

===moderator hat off===
Страницы: 1
Читают тему