IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Пингвинятник (ОС *NIX) (https://www.imho.ws/forumdisplay.php?f=76)
-   -   можно ли такой скрипт замутить? или может на чем-то др.? (https://www.imho.ws/showthread.php?t=59191)

StRaNNiK 19.05.2004 18:01

можно ли такой скрипт замутить? или может на чем-то др.?
 
Подскажите, как такое замутить? скриптец.. должен делать вот такое:
1. открывает файл. например qwerty.cfg
2. начинает искать в каждой строке словосочетание "всем привет"
3. если находит, то строку удаляет.
4. сохраняет файл

Ghost 19.05.2004 18:17

Сделай на перле, это проще всего:
Код:

open (FILE, "qwerty.cfg");
my @indata = <FILE>;
close (FILE);
open (FILE, ">qwerty.cfg");
foreach (@indata) { print FILE $_ unless $_ =~ /всем привет/; }
close (FILE);


Bek 19.05.2004 18:30

Код:

#!/usr/bin/perl -w   
$infile = "qwerty.cfg"; 
open FD0, "> tmp";
open FD, "< $infile" || die "cannot open qwerty.cfg";   
  while (<FD>) {
    if ($_ !~ m/всем привет/) {
      print FD0 "$_\n";
    }
  }
  close FD; close FD0;
  unlink ($infile);
  rename ("tmp",$infile);

примерно так на perl'е выглядит
Исправил ошибки, но оптимизировать не стал

Drakosha 19.05.2004 18:35

народ, вы чего????????

grep -v "всем привет" qwerty.cfg > /tmp/tmp
mv /tmp/tmp qwerty.cfg

Bek 19.05.2004 18:41

на перле круче ;)

StRaNNiK 19.05.2004 19:45

Drakosha and Ghost - сэнк. заработало.
Bek - выводит ошибку :(

syntax error at ./123.pl line 4, near "open "
No comma allowed after filehandle at ./123.pl line 7.

Bek 20.05.2004 10:18

ну да :)
в 3 строке ";" не поставил :nunu:

ivahaev 20.05.2004 10:31

Просто Я, вообще, советую RegExp'ы поизучать. С помощью только их можно таких вещей с текстом натворить!

Drakosha 20.05.2004 12:34

имхо the simpler - the better :ninja:

Bek 20.05.2004 13:04

Drakosha
зато скрипт всегда можно доработать

StRaNNiK 20.05.2004 13:42

Bek
все равно ошибку выдает :(

No comma allowed after filehandle at ./123.pl line 7.

ivahaev 20.05.2004 13:50

Цитата:

Просто Я:
No comma allowed after filehandle at ./123.pl line 7.
Я так понимаю, что нужно удалить ";" (comma) в седьмой строке.
... или где-то рядом добавить :)

Ghost 20.05.2004 13:51

No comma allowed after filehandle - Не должно быть запятой после хэндла файла. Судя по всему это в строчке с print. Насколько я знаю перл, нужно было написать print FD0 "$_\n";, а не print FD0, "$_\n";.

Bek 20.05.2004 14:25

Ghost все верно
звиняйте - у меня под рукой нет перла и писал по памяти сразу в форум.


Часовой пояс GMT +4, время: 23:12.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.