Страница 1 из 2
поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 0:22:05
zingel
есть
Код: Выделить всё
#!/bin/bash
FA=~/spisok.txt
ZA=~/spisok2.txt
for i in $(cat $FA); do echo "<html><head></head><body><p>$i</p></body></html>" > $ZA ; done;
собственно первая переменная - файл со строками вида
abakarova-hadizhat-abakarovna Абакарова Хадижат Абакаровна - - от 03.08.09 118 от 21.07.09 Действует с.Хив
abakumova-evdokiya-maksimovna Абакумова Евдокия Максимовна (82147)3-03-31 23 от 26.10.93 1/61 от 22.07.94 Не действует! 169400
abanina-nataljya-aleksandrovna Абанина Наталья Александровна (4242)72-20-58 002963 от 05.11.93 148/0717 от 23.11.94 Действует 693020,г.Южно-Сахалинск,ул.Вокза
и так далее
вторая переменная список файлов в директории с полным путём до них вида
/var/www/host/data/www/somefuckname/index.php
/var/www/host/data/www/somefuckname2/index.php
/var/www/host/data/www/somefuckname3/index.php
/var/www/host/data/www/somefuckname4/index.php
/var/www/host/data/www/somefucknameX/index.php
и так далее
Вопрос - как взять одну строку из первой переменной и вставить в строку второй переменной, то есть в итоге должно получится что например первая строка должна попасть в файл /var/www/host/data/www/somefuckname/index.php вторая в файл /var/www/host/data/www/somefuckname2/index.php третья в /var/www/host/data/www/somefuckname3/index.php ?
или я окончательно отупел к зиме или я что-то не туда копаю, заработался и не соображаю уже простые вещи. Подскажите мне кто-то чего-то, а то сил моих нет уже.
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 0:44:48
paradox
что то мне кажеться шелом ты не обойдешься
нужно или перл или то что умеет работать в хешами или масивами
заганять оба файла в массив
двухмерный
и дальше одной переменной идти сразу по двум направлением
тоесть
[][] масив твоих файлов
а дальше одной переменной i
ити
ну думаю смысл понятен
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 0:49:37
ProFTP
однострок на perl?
примерно так:
Код: Выделить всё
$i = 0;
foreach (@file) {
$i++;
system ("echo $_ > /var/www/host/data/www/somefuckname$i/index.php ");
}
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 0:50:05
zingel
ну я так и знал, только мне двумерных массивов в 2 часа ночи и не хватало.
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 0:54:29
ProFTP
или:
Код: Выделить всё
open f, "test.txt";
my @file = <f>;
close f;
open f2, "test2_linkz.txt";
my @php = <f2>;
close f2;
## @file;
## @php;
$i = 0;
foreach (@file) {
$i++;
system ("echo $_ > $php[$i]");
}
die "или я не понял?";
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 0:56:53
zingel
ProFTP
Код: Выделить всё
system ("echo $_ > /var/www/host/data/www/somefuckname$i/index.php ");
там он не 1 такой, там целые сраные 10 000 таких файлов и строка 1 из первого списка должна попадать в строку 1 второго, то есть как я прикидываю нужно два разных одновременных цикла или что ты имел ввиду? То есть там стояла задача нагенерить индексов контентом которых будет выборка из сраной таблицы вообще какбэ mysql мало того каждая папка в подпапке должна иметь название первой колонки этой таблицы (я нагенерил папок и индексов хер с ним но дальше мой разум придумал только такое)

я в итоге сгенерил 2 списка потому, что так проще и вот ...короче сил моих нет
die "или я не понял?";
я и сам по началу не понял чего же хочет автор задумки...
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 1:02:00
ProFTP
можешь по пунктам сформалировать? то есть надо чтобы по 10 000 файлов пройтись? их создать?
Код: Выделить всё
/var/www/host/data/www/somefuckname/index.php
/var/www/host/data/www/somefuckname2/index.php
/var/www/host/data/www/somefuckname3/index.php
/var/www/host/data/www/somefuckname4/index.php
/var/www/host/data/www/somefucknameX/index.php
то что ты говорил, я привел или нет?
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 1:06:17
ProFTP
Вопрос - как взять одну строку из первой переменной и вставить в строку второй переменной
а куда ее вставить вверх, в низ?
или сюда
Код: Выделить всё
<html><head></head><body><p>$i</p></body></html>
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 1:08:13
ProFTP
Код: Выделить всё
open f, "test.txt";
my @file = <f>;
close f;
open f2, "test2_linkz.txt";
my @php = <f2>;
close f2;
## @file;
## @php;
$i = 0;
foreach (@file) {
$i++;
system ("echo " <html><head></head><body><p>$_</p></body></html>" > $php[$i]");
}
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 1:18:29
zingel
смотри, есть база уродская в mysql созданная моральным уродом в которой есть вот такие колонки...
Изначально стояла задача
1. Нагенерить поддоменов начинающихся с имени tfio, ввести их в апачь, херачь, бинд, туда, сюда - это я сделал
2. Нагенерить индексов в каждом этом уже создавшемся домене - это я сделал
3. Добавить вот из такого запроса
Код: Выделить всё
SELECT tfio, fio, phone, license, prikaz, status, notes, city, address, palata FROM ntlist ORDER BY ntlist.tfio ASC
информацию в каждый индекс, то есть получается что каждая строка 1 итерации выборки должна попасть в свой индекс который именем совпадает с записью таблицы tfio
максимум что я придумал так это вот такой ахтунг на баше
Код: Выделить всё
#!/bin/bash
DIR=/var/www/host/data/www/
BINDLIST=/etc/bind/host.ru
CNF=/etc/apache2/apache2.conf
echo "create directories for subdomains"
for i in $(mysql -uread -hlocalhost host -pqwerty -e "SELECT lastname FROM lastnames;" | grep -v "|");
do mkdir $DIR/$i.notaryhost.ru;
done;
echo "adding IN A record's"
for i in $(mysql -uread -hlocalhost host -pqwerty -e "SELECT lastname FROM lastnames;" | grep -v "|");
do echo "$i IN A 91.195.253.50" >> $BINDLIST;
done;
echo "adding IN A www records"
for i in $(mysql -uread -hlocalhost host -pqwerty -e "SELECT lastname FROM lastnames;" | grep -v "|");
do echo "*.$i IN A 91.195.253.50" >> $BINDLIST;
done;
echo "adding records for apache"
#for i in $(mysql -uread -hlocalhost yhost -pqwerty -e "SELECT lastname FROM lastnames;" | grep -v "|");do echo "
<VirtualHost 91.195.253.50:80>
ServerName $i.notaryhost.ru
DocumentRoot /var/www/host/data/www/$i.host.ru
SuexecUserGroup host host
CustomLog /var/www/httpd-logs/$i.host.ru.access.log combined
ErrorLog /var/www/httpd-logs/$i.host.ru.error.log
ServerAlias www.$i.host.ru *.$i.host.ru
ServerAdmin webmaster@host.ru
DirectoryIndex index.php
ScriptAlias /php-bin/ /var/www/host/data/php-bin/
ScriptAlias /cgi-bin/ /var/www/host/data/www/$i.host.ru/cgi-bin/
AddHandler php-cgi .php .php3 .php4 .php5 .phtml
VirtualDocumentRoot /var/www/host/data/www/%0
</VirtualHost>" >> $CNF;
done;
echo "done"
for i in $(find $DIR ); do echo "<?php ?> <htm><head><body></body></head></html>" > $i/index.php ; done
то есть третья задача так и не выполнена....
то есть каждую итерацию запроса к mysql нужно вставить в свой индекс в виде
Код: Выделить всё
<html><head></head><body><p>$i</p></body></html>
где $i - эта сатанинская итерация...блджад какой-то
я тебя верно понял что то что я хочу будет выглядить так?:
Код: Выделить всё
#выборка из Mysql - spisok.txt
open f, "spisok.txt";
my @file = <f>;
close f;
#список индексов поддоменов - spisok2.txt
open f2, "spisok2.txt";
my @php = <f2>;
close f2;
## @file;
## @php;
$i = 0;
foreach (@file) {
$i++;
system ("echo " <html><head></head><body><p>$_</p></body></html>" > $php[$i]");
}
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 1:26:46
ProFTP
я в bash уже забыл все его возможности...
из bash можно выполнить perl скрипт?
может перепиши на perl весь скрипт?
вставить
$i в тест так:
Код: Выделить всё
Stest = "<htm><head><body>".$i."</body></head></html>";
или
Код: Выделить всё
Stest = "<htm><head><body>__ADDED__</body></head></html>";
for ($test) {
s/__ADDED__/$i/g;
}
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 1:30:11
ProFTP
zingel писал(а):
я тебя верно понял что то что я хочу будет выглядить так?:
Код: Выделить всё
#выборка из Mysql - spisok.txt
open f, "spisok.txt";
my @file = <f>;
close f;
#список индексов поддоменов - spisok2.txt
open f2, "spisok2.txt";
my @php = <f2>;
close f2;
## @file;
## @php;
$i = 0;
foreach (@file) {
$i++;
system ("echo " <html><head></head><body><p>$_</p></body></html>" > $php[$i]");
}
вроде бы
я не тестировал скрипт, у меня нету такой таблицы как у тебя...
я примерно написал... может так кавычки надо где-то подправить, выполни тестово...
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 1:31:34
zingel
не, ну его в жопу ещё все переписывать, ведь по традиции же
дедлайн был вчера (с)
если бы было где ещё его тестово...
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 1:40:00
ProFTP
не много по другому
Код: Выделить всё
#!/usr/bin/perl
@file=('rr5','rr6');
@php=('sdfs3','3sdfsdf');
$i=0;
foreach (@file) {
#$i++;
system ("echo '<html><head></head><body><p>$_</p></body></html>' > $php[$i]");
$i++;
}
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 1:40:50
ProFTP
Код: Выделить всё
#!/usr/bin/perl
@file=('rr5','rr6');
@php=('sdfs3','3sdfsdf');
$i=0;
foreach (@file) {
#$i++;
system ("echo '<html><head></head><body><p>$_</p></body></html>' > $php[$i]");
$i++;
}
Код: Выделить всё
<html><head></head><body><p>rr6</p></body></html>
Код: Выделить всё
<html><head></head><body><p>rr5</p></body></html>
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 1:45:19
zingel
ты мне сейчас устроил buffer owerflow в голове строкой
так ведь да?
Код: Выделить всё
@php=('sdfs3','3sdfsdf'); = @somefuck=*('spisok.txt,'spisok2.txt);
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 1:52:10
ProFTP
@php - это вот это:
Код: Выделить всё
/var/www/host/data/www/somefuckname/index.php
/var/www/host/data/www/somefuckname2/index.php
/var/www/host/data/www/somefuckname3/index.php
/var/www/host/data/www/somefuckname4/index.php
/var/www/host/data/www/somefucknameX/index.php
@file:
Код: Выделить всё
abakarova-hadizhat-abakarovna Абакарова Хадижат Абакаровна - - от 03.08.09 118 от 21.07.09 Действует с.Хив
abakumova-evdokiya-maksimovna Абакумова Евдокия Максимовна (82147)3-03-31 23 от 26.10.93 1/61 от 22.07.94 Не действует! 169400
abanina-nataljya-aleksandrovna Абанина Наталья Александровна (4242)72-20-58 002963 от 05.11.93 148/0717 от 23.11.94 Действует 693020,г.Южно-Сахалинск,ул.Вокза
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 2:16:29
ProFTP
сори, я не дочитал первый пост
вместо
$php[$i]
поставь:
Код: Выделить всё
/var/www/host/data/www/somefuckname$i/index.php
$i будет с нуля
или перед system переопредели 0 на пустое ''
или как-то так:
Код: Выделить всё
"/var/www/host/data/www/somefuckname".($i == 0 ? '' : $i)."/index.php"
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 2:23:45
zingel
скажи что в итоге получиться а то у меня уже абстракционизм сплошной в голове
somefuckname не всегда somefuck а то что есть в выборке tfio то есть
где $x = имя сраное человека которое лежит в столбце tfio в транслите собсна и имя человека есть название поддомена в домене somefuck то есть получая имя я создал поддомен аналогичного названия
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 2:29:11
ProFTP
берется строка $_ с массива @file
и вставляетмя в файл через систем, и создается новый файл
счетчик $i который добавляет в ++
Код: Выделить всё
"/var/www/host/data/www/somefuckname".($i == 0 ? '' : $i)."/index.php"
только подожди каталоги надо создать? echo каталог не создаст?
ну типо mkdir, потом echo строки $_ в index.php
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 2:30:55
zingel
не, каталоги уже есть, задача надобавлять в индексы то что выбирается селектом
1 итерация -> 1 запись вида <html><body>$x</body></html> в индекс который лежит уже в поддомене
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 2:33:13
ProFTP
zingel писал(а):скажи что в итоге получиться а то у меня уже абстракционизм сплошной в голове
somefuckname не всегда somefuck а то что есть в выборке tfio то есть
где $x = имя сраное человека которое лежит в столбце tfio в транслите собсна и имя человека есть название поддомена в домене somefuck то есть получая имя я создал поддомен аналогичного названия
тут пробелы стоят
Код: Выделить всё
abakarova-hadizhat-abakarovna Абакарова Хадижат Абакаровна - - от 03.08.09 118 от 21.07.09 Действует с.Хив
вынуть навренео не получиться через splite
перепиши лучше на perl, если на bash не реально

Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 2:35:39
zingel
нужно только надобавлять шаблонного html в файлы самое главное туда засунуть инфу которая берётся из селекта, вот по этому я сделал 2 списка, в 1 пути к индексам во втором собственно инфа которую в эти индексы нужно навтыкать
моя голова сейчас треснет

Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 2:37:16
ProFTP
я именно так и сделал вроде бы...
не так?
Код: Выделить всё
system ("echo '<html><head></head><body><p>$_</p></body></html>' > $php[$i]");
Re: поместить строку из списка в создающийся файл
Добавлено: 2009-09-21 2:38:42
zingel
а где ты так сделал? я уже тут потерялся (спать охота почти shutdown)
вот это?
Код: Выделить всё
#!/usr/local/bin/perl
#выборка из Mysql - spisok.txt
open f, "~/spisok.txt";
my @file = <f>;
close f;
#список индексов поддоменов - spisok2.txt
open f2, "~/spisok2.txt";
my @php = <f2>;
close f2;
## @file;
## @php;
$i = 0;
foreach (@file) {
$i++;
system ("echo " <html><head></head><body><p>$_</p></body></html>" > $php[$i]");
}
ну вроде да это, интересно что получиться из этого всего, отпишу как запущу