URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 38702
[ Назад ]

Исходное сообщение
"Не могу составить скрипт Помогите!"

Отправлено albag , 22-Дек-03 09:38 
Нужно удалить из лога squid строки с http:// Sed ом не получается из-за
// Си я не знаю, неужели нет ничего простого.
Помогите хотя бы советом.

Содержание

Сообщения в этом обсуждении
"Не могу составить скрипт Помогите!"
Отправлено Михаил , 22-Дек-03 09:57 
>Нужно удалить из лога squid строки с http:// Sed ом не получается
>из-за
>// Си я не знаю, неужели нет ничего простого.
>Помогите хотя бы советом.
в первом приближении grep -v "http://" /путь_до_лога/access.log
далее man grep


"Не могу составить скрипт Помогите!"
Отправлено lavr , 22-Дек-03 10:30 
>Нужно удалить из лога squid строки с http:// Sed ом не получается
>из-за
>// Си я не знаю, неужели нет ничего простого.
>Помогите хотя бы советом.

совет прост - изучай регулярные выражения, спецсимволы необходимо экранировать: http:// - http:\/\/


"Не могу составить скрипт Помогите!"
Отправлено Владимир , 22-Дек-03 11:01 
>>Нужно удалить из лога squid строки с http:// Sed ом не получается
>>из-за
>>// Си я не знаю, неужели нет ничего простого.
>>Помогите хотя бы советом.
>
>совет прост - изучай регулярные выражения, спецсимволы необходимо экранировать: http:// - http:\/\/
>


Очень рекомендую изучить перл - удобный и простой язык, гораздо проще шела. Я не программер, но часто его использую для разных задач.
Эта прога будет стирать строки с http://

#!/usr/bin/perl -w
use strict;

        my $file= "/usr/local/squid/var/logs/tst";
        my $string = "http:\/\/";
        my $value = undef;
        print "$file\t$string\t$value\n";
        @ARGV = "$file" or die "No file found";
        $^I=".bak";
        while (<>) {
        s/^.*$string.*/$value/;
        print;
        }


"Не могу составить скрипт Помогите!"
Отправлено Владимир , 22-Дек-03 11:04 
>Нужно удалить из лога squid строки с http:// Sed ом не получается
>из-за
>// Си я не знаю, неужели нет ничего простого.
>Помогите хотя бы советом.


Скрипт на перле:

#!/usr/bin/perl -w
use strict;

        my $file= "/usr/local/squid/var/logs/tst";
        my $string = "http:\/\/";
        my $value = undef;
        print "$file\t$string\t$value\n";
        @ARGV = "$file" or die "No file found";
        $^I=".bak";
        while (<>) {
        s/^.*$string.*/$value/;
        print;
        }


"Не могу составить скрипт Помогите!"
Отправлено HFSC , 22-Дек-03 11:42 
>>Нужно удалить из лога squid строки с http:// Sed ом не получается
>>из-за
>>// Си я не знаю, неужели нет ничего простого.
>>Помогите хотя бы советом.
>
>
>Скрипт на перле:
>
>#!/usr/bin/perl -w
>use strict;
>
>        my $file= "/usr/local/squid/var/logs/tst";
>        my $string = "http:\/\/";
>
>        my $value = undef;
>
>        print "$file\t$string\t$value\n";
>        @ARGV = "$file" or
>die "No file found";
>        $^I=".bak";
>        while (<>) {
>        s/^.*$string.*/$value/;
>        print;
>        }

sed '/^http:\/\//d' file > file2 ..действительно перл намного легче шелл скриптов :)


"Не могу составить скрипт Помогите!"
Отправлено Владимир , 22-Дек-03 12:05 
>>>Нужно удалить из лога squid строки с http:// Sed ом не получается
>>>из-за
>>>// Си я не знаю, неужели нет ничего простого.
>>>Помогите хотя бы советом.
>>
>>
>>Скрипт на перле:
>>
>>#!/usr/bin/perl -w
>>use strict;
>>
>>        my $file= "/usr/local/squid/var/logs/tst";
>>        my $string = "http:\/\/";
>>
>>        my $value = undef;
>>
>>        print "$file\t$string\t$value\n";
>>        @ARGV = "$file" or
>>die "No file found";
>>        $^I=".bak";
>>        while (<>) {
>>        s/^.*$string.*/$value/;
>>        print;
>>        }
>
>sed '/^http:\/\//d' file > file2 ..действительно перл намного легче шелл скриптов :)

:)
Может не конкретно для этой задачи, но уверяю вас! Достаточно усложнить задачи программы и условия поиска для sed-а и может поехать крыша
Но спорить не буду :)))


"Не могу составить скрипт Помогите!"
Отправлено HFSC , 22-Дек-03 13:04 
>>>>Нужно удалить из лога squid строки с http:// Sed ом не получается
>>>>из-за
>>>>// Си я не знаю, неужели нет ничего простого.
>>>>Помогите хотя бы советом.
>>>
>>>
>>>Скрипт на перле:
>>>
>>>#!/usr/bin/perl -w
>>>use strict;
>>>
>>>        my $file= "/usr/local/squid/var/logs/tst";
>>>        my $string = "http:\/\/";
>>>
>>>        my $value = undef;
>>>
>>>        print "$file\t$string\t$value\n";
>>>        @ARGV = "$file" or
>>>die "No file found";
>>>        $^I=".bak";
>>>        while (<>) {
>>>        s/^.*$string.*/$value/;
>>>        print;
>>>        }
>>
>>sed '/^http:\/\//d' file > file2 ..действительно перл намного легче шелл скриптов :)
>
>:)
>Может не конкретно для этой задачи, но уверяю вас! Достаточно усложнить задачи
>программы и условия поиска для sed-а и может поехать крыша
>Но спорить не буду :)))

в данном задаче крыша едет от вашего кода :)