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

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

Отправлено Laska , 27-Июн-05 22:32 
Всем привет!
помогите написать скриптик...
Есть один большой текстовый файл.
вида

HEADER_WORD
La-la-la
lal-la-la
.
HEADER_WORD
la -ka la
bla bla bla
.
HEADER_WORD
bla bla lbla
bla blalb
.
...

То есть сначала идет HEADER_WORD, потом несколько строк текста, потом строка из точки.
Задача: разложить этот файл на кучу маленьких.
Первый файл должен содержать:
HEADER_WORD
La-la-la
lal-la-la
.
Второй:
HEADER_WORD
la -ka la
bla bla bla
.

Ну и так далее. Именоваться - как угодно 1, 2, 3 например и тп.
Подскажите, как это сделать попроще и побыстрее, на шелле или перле или еще как...
СПАСИБО ОГРОМНОЕ!


Содержание

Сообщения в этом обсуждении
"Помогите написать скриптик!"
Отправлено allez , 28-Июн-05 08:45 
Вот пример на shell. Имя исходного текстового файла
указывается как аргумент.
==================================================
#!/bin/bash
# Syntax: ./script.sh <filename>

FILENUM=0
HEADER="HEADER_WORD"

while read LINE;
do
  if [ "`echo $LINE | grep $HEADER`" != "" ];
  then
    ((FILENUM++))
  fi
  echo $LINE >> $FILENUM.txt
done<$1
==================================================


"Помогите написать скриптик!"
Отправлено knsi , 28-Июн-05 08:46 
>Всем привет!
>помогите написать скриптик...
>Есть один большой текстовый файл.
>вида
Вот на псевдо языке

k='0';
for(;string=getline();)
{
if(!strcmp(string,HEADER_WORD))
{
k++;
strcpy(file,k);
strcat(file,".txt");
}
string>>file;
}



"Помогите написать скриптик!"
Отправлено vlad1965 , 28-Июн-05 09:54 
>>Всем привет!
>>помогите написать скриптик...
>>Есть один большой текстовый файл.
>>вида
Вот попробуй.

#!/usr/bin/perl
#
$i=0;
open(F1,@ARGV[0]) || die ("Can't open file)!\n");
while ($str=<F1>)
{
  chomp ($str);
  if ($str eq @ARGV[1])
    {
      close(F2);
      $i+=1;
      $s=$str.$i;
      open(F2,">$s");
      print "$s","\n";
  }
  print F2 "$str","\n";
};
close(F1);

./prg.pl file.name HEADER_WORD