Помогите в написании скрипта

программирование Linux Debian bash

Имеем ОС Debian GNU/Linux "squeeze".
Есть список типа:
file param1 param2 param3
file1 param11 param12 param13
...
fileX paramX1 paramX2 paramX3

Есть шаблон типа:
<?xml version="1.0" encoding="UTF-8"?>
<document id="param1">
<title>param2</title>
<para>param3 - ...</para>
</document>

Нужно на основании списка создать множество файлов с именами file, file1, ..., fileX по имеющемуся шаблону, но при этом в создаваемом файле param1, param2, param3 должны быть изменены на соответствующие параметры из файла списка.

Примечание:
BARK.UA
Большое спасибо, довольно красивое решение, но как всегда хочется чего-то большего. Для конкретно описанной задачи подходит полностью. Довольно часто приходится сталкиваться с подобными задачами и хотелось бы иметь более общее решение. То есть имеет файл file.list (структура примерно подобная описанной) и template.xml (или просто любой другой шаблон и довольна большого, чтобы его текст использовать в скрипте).
Ответы:
xmlstarlet, xgrep, sed, awk в помощь.
cat list | while read file param1 param2 param3 ; do echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > $file ; echo "<document id=\"$param1\">" >> $file; echo "<title>$param2</title>" >> $file; echo "<para>$param3 - ...</para>" >> $file; echo "</document>" >> $file ; done
cat list.txt | \
 while read str ; do
   set -- $str ;
   perl -pe "s/param1/$2/ ; s/param2/$3/ ; s/param3/$4/ " ./template.xml > $1 ;
 done


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.