Всем привет!
помогите написать скриптик...
Есть один большой текстовый файл.
вида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 например и тп.
Подскажите, как это сделать попроще и побыстрее, на шелле или перле или еще как...
СПАСИБО ОГРОМНОЕ!
Вот пример на 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
==================================================
>Всем привет!
>помогите написать скриптик...
>Есть один большой текстовый файл.
>вида
Вот на псевдо языкеk='0';
for(;string=getline();)
{
if(!strcmp(string,HEADER_WORD))
{
k++;
strcpy(file,k);
strcat(file,".txt");
}
string>>file;
}
>>Всем привет!
>>помогите написать скриптик...
>>Есть один большой текстовый файл.
>>вида
Вот попробуй.#!/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