Модераторы: powerfox, ZeeLax

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [shell] вставка в шаблон 
V
    Опции темы
miaw
Дата 12.6.2008, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.6.2008

Репутация: нет
Всего: нет



Привет.
Только учусь писать скрипты.
Требуется следующее
существует n-ое количество текстовых файлов с именами 1,2,3..n и некоторый файл-шаблон
по этому шаблону необхоимо создать файлы 1,2,3..n и вставить в них (заменив определенное слово) содержимое из соответствующих текстовых файлов
PM MAIL   Вверх
Бонифаций
Дата 12.6.2008, 20:18 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: 9
Всего: 40



Ничего не понятно..Ты же пишешь что файлы 1,2,3..n уже существуют... 

Приведи пример


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
miaw
Дата 13.6.2008, 08:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.6.2008

Репутация: нет
Всего: нет



ну как вариант - поместить их в другой каталог или дать другое расширение

пример:
1.rtf - файл с текстом
shablon.txt - шаблон
создаем файл 1.txt, копируем в него содержимое из shablon.txt,  а потом заменяем слово "zamena" содержимым из файла 1.rtf, сохраняем
тоже самое со след. файлами, только заменять содержимым из 2.rtf,3.rtf....соответственно


PM MAIL   Вверх
JackYF
Дата 13.6.2008, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 14
Всего: 162



miaw, что конкретно вызывает трудности?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
bilbobagginz
Дата 13.6.2008, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 113
Всего: 317



если не ошибаюсь, rtf это бинарный файл, а не текстовой. как и .doc, .odt и т.д.



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
Бонифаций
Дата 13.6.2008, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: 9
Всего: 40



rtf - текстовой. 

{\rtf1\ansi\ansicpg1251\deff0
{\fonttbl
{\f0\fnil\fcharset204\fprq0\fttruetype Times New Roman;}
{\f1\fnil\fcharset204\fprq0\fttruetype Nimbus Sans L;}
{\f2\fnil\fcharset204\fprq0\fttruetype Dingbats;}
{\f3\fnil\fcharset204\fprq0\fttruetype Symbol;}
{\f4\fnil\fcharset204\fprq0\fttruetype Courier New;}}

и т.д.


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
miaw
Дата 14.6.2008, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.6.2008

Репутация: нет
Всего: нет



мне не понятно как осуществить замену слова текстом из файла
а точнее как направить это текст в sed

Это сообщение отредактировал(а) miaw - 14.6.2008, 12:21
PM MAIL   Вверх
JackYF
Дата 14.6.2008, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 14
Всего: 162



sed 's/слово/текст/'


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
miaw
Дата 14.6.2008, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.6.2008

Репутация: нет
Всего: нет



это то понятно smile

Код

#!/bin/sh

echo -n "Введите количество файлов:"
read num

for i in $(seq 1 $num)
do
cat shablon > $i  && echo Файл $i создан. || Файл $i не создан.
sed -e "s/shab/$i.txt/" $i
done

echo Конец!


недопонимание в 9 строке :(
а не с помощью ли read здесь надо?

Это сообщение отредактировал(а) miaw - 14.6.2008, 14:23
PM MAIL   Вверх
JackYF
Дата 14.6.2008, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 14
Всего: 162



Цитата

sed -i

и man sed smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
miaw
Дата 15.6.2008, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.6.2008

Репутация: нет
Всего: нет



читал
все равно не получается
PM MAIL   Вверх
JackYF
Дата 15.6.2008, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 14
Всего: 162



Цитата(miaw @  15.6.2008,  15:34 Найти цитируемый пост)
все равно не получается 

что именно не получается?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
nickless
Дата 16.6.2008, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 41
Всего: 181



miaw, -i к sed добавлять пробовал?


--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
miaw
Дата 16.6.2008, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.6.2008

Репутация: нет
Всего: нет



пробовал
sed -i "s/shab/$i.txt/" $i - в данном случае shab заменяется названием *.txt, а мне нужно его содержимое
PM MAIL   Вверх
JackYF
Дата 16.6.2008, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 14
Всего: 162



Цитата(miaw @  16.6.2008,  11:19 Найти цитируемый пост)
$i.txt

Цитата

`cat $i.txt`



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
miaw
Дата 17.6.2008, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.6.2008

Репутация: нет
Всего: нет



благодарю

вот только одна проблема
если в *.txt большой текст, то вылетает ошибка 
sed: -e выражение #1, символ 978: незавершенная команда `s'

Код

#!/bin/sh
echo -n "Введите количество файлов:"
read num
for i in $(seq 1 $num)
do
cat shablon > $i  
sed -i "s/shab/`cat $i.txt`/" $i && echo Файл $i создан.
done
echo Конец!

PM MAIL   Вверх
JackYF
Дата 17.6.2008, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 14
Всего: 162



miaw, текст покажи. Большой который.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
miaw
Дата 18.6.2008, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.6.2008

Репутация: нет
Всего: нет



любой текст ~900> символов

например:
Описание: Лето 1977 года надолго запомнилось ньюйоркцам. Испепеляющая жара, от которой никуда не скрыться в каменных джунглях мегаполиса, казалось довела город до сумасшествия. Столкновения двух новомодных музыкальных течений - диско и панкрока - выплеснулись на улицы Манхеттена. Но и этого оказалось мало для злополучного Нью-Йорка! Новая напасть: первый серийный убийца Дэвид Беркович, орудующий без разбора на ночных улицах итало-американского квартала Бронкса и нагоняющий ужас на ошалевших от жары горожан кольтом 44 калибра.
Жители города впадают в панику , подогреваемую средствами масс-медиа, которые как стервятники набросились на новую сенсацию. Желтая пресса окрестила маньяка «Убийцей 44 калибра» или «Сыном Сэма». Отчаянные поиски убийцы полицией не дают никаких результатов. Весь город замер, скованный страхом. Босс нью-йоркской мафии объявил награду за голову убийцы. Позарившись на деньги, местный головорез Джой со своими дружками решает выследить кровожадного маньяка.


Это сообщение отредактировал(а) miaw - 18.6.2008, 21:56
PM MAIL   Вверх
JackYF
Дата 18.6.2008, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 14
Всего: 162



Возможно, sed просто не обрабатывает настолько длинные строки. Попробуй почитать man smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
nickless
Дата 19.6.2008, 02:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 41
Всего: 181



Цитата(miaw @  17.6.2008,  12:20 Найти цитируемый пост)
sed: -e выражение #1, символ 978: незавершенная команда `s'

Скорее всего там просто есть переводы строк и куча прочего мусора.
Попробуй вместо sed ...
Код

perl -pe "s/shab/$(cat $i.txt)/" -i $i



--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
miaw
Дата 19.6.2008, 07:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 12.6.2008

Репутация: нет
Всего: нет



работает, спасибо smile
PM MAIL   Вверх
nickless
Дата 19.6.2008, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 41
Всего: 181



Цитата(miaw @  19.6.2008,  06:34 Найти цитируемый пост)
работает, спасибо

Прекрасно. smile 
Не забываем помечать вопрос решенным (галочка сверху справа) smile 



--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Oбщие вопросы"
nickless
Imple
nerezus

В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
Например вопросы о выборе ОС для определенных задач (но если Вы просто хотите узнать "Какой дистрибутив лучше", то для этого есть Клуб юнуксоидов).
Общие вопросы по shell-программированию тоже лучше задавать здесь.


  • Вопросы мобильной разработки тут
  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0669 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.