Не так всё просто, постараюсь объяснить поподробнее чего хочу сделать
есть файлик, его используем как шаблон
Код: Выделить всё
cat test.txt
[host 1]
group = group1
name = computer1
host = 11.11.11.11
user = root
pass =
private_key =
port = 22
tunnel =
type = ssh
commands =
keepalive = 0
font-color =
back-color =
x11 = True
agent = True
log = False
И есть другой фйлик где туева куча с всякими данными выдираю я всё из него и получаю
Код: Выделить всё
#!/bin/sh
name=`cat base.ini | grep -1 Sessions | sed 's/\-\-//' | grep group1 | awk -F "/" '{print $2}' | sed 's/..$//' | xargs`
hosts=`cat base.ini | grep -1 Sessions | sed 's/\-\-//' | grep -1 group1 | grep HostName | awk -F "=" '{print $2}' | tr -d '\015' | xargs`
_num=`cat base.ini | grep -1 Sessions | sed 's/\-\-//' | grep group1 | awk -F "/" '{print $2}' | sed 's/..$//' | wc -l`
num=`seq $_num | xargs`
cat test.txt | sed "s/\[host.*/\[host $num\]/" | sed "s/host =.*/host \= $hosts/" | sed "s/name .*/name \= $name/" >> outfile.txt
Переменные обозначают
name имя компа будет заменять name = computer1
hosts хост компа будет заменять host = 11.11.11.11
num - считает и заменяет номер блока [host 1]
Вот как бы мне сделать такой парсер? Нужен цикл, но как там передать 3 переменные я хз...
То что код у меня жесть и можно сделать красивее я знаю там cat можно убрать, но это как пример, о красоте речи не идёт, тут бы функционал...