PDA

Просмотр полной версии : парсер ( поиск слова в файле )


Sharky
30.08.2007, 01:40
Нужен скрипт который будет искать заданное слово в файле .а в итоге показывал сколько раз это слово встретилось в файле.

желательно пример и на perl и на php

Piflit
30.08.2007, 01:48
Текстовой файл?

A110ut
30.08.2007, 02:08
Sharky, в гугле сорцев с примерами вагон и маленькая тележка

Piflit, гениально. наверное в случае положительного ответа нужно будет "открыть файл блокнотом, нажать ктрл+ф и считать"

Piflit
30.08.2007, 02:26
Piflit, гениально. наверное в случае положительного ответа нужно будет "открыть файл блокнотом, нажать ктрл+ф и считать"

При чем тут это? Может ему надо в бинарнике сигнатуры искать. Я просто уточнил=\

demonoid
30.08.2007, 02:29
В случае с текстовым файлом
#!/usr/bin/perl
#
#[30.08.2007] : [1:21]

use strict;
use warnings;

(@ARGV<1)?&baner:1;

open my $file, "<", $ARGV[0] or fatal_error("Can\'t open $ARGV[0]");
my $count = 0;
my $curr_word = undef;

foreach $curr_word (<$file>)
{
chomp($curr_word);
if($curr_word=~/Sharky/m )
{
$count++;
}
}

printf "The word is found %2d time \n",$count;

sub baner
{
print "\t\tusage : $0 <file>\n\t\texample : $0 file.txt \n";
exit;
}

sub fatal_error
{
my @buf = @_;
printf "ERROR : %s \n",@buf;
exit;
}


Если тебе нужно точное соответствие слова , измени регулярное выражение в 17 - й строке .

Sharky
30.08.2007, 11:27
спасибо...то что надо =) а можно ещё на php тоже самое?

vizard-06
30.08.2007, 11:30
<?
$s='bla';
$fil=file_get_contents('1.txt');
$fil=str_replace("\r\n","",$fil);
$k=preg_match_all("/$s/i",$fil,$serch);
echo $k;
?>

Sharky
30.08.2007, 11:58
вроде оно..во всяком случае держи +

NOmeR1
30.08.2007, 17:35
Если нужно просто сосчитать кол-во каких-то слов в файле, то можно просто использовать substr_count.
<?
$file = 'файл.txt';
$slovo = 'слово или текст, который мы ищем';
$text = file_get_contents($file);
echo substr_count($text,$slovo);
?>