Как добавить строку из файла в соответствующие файлы - PullRequest
0 голосов
/ 06 мая 2019

Я пытаюсь просмотреть список рабочих станций и добавить данные в соответствующие им отдельные файлы.Я уже создал отдельные файлы, но теперь мне нужна помощь с использованием sed или чего-то еще для замены текста в отдельных файлах XML:

Например:

workstation_list.txt имеет следующие строки:

workstation1
workstation1.domain.com
127.0.0.1
00:00:00:00:00:00

workstation2
workstation2.domain.com
127.0.0.2
11:11:11:11:11:11

У меня есть два файла: рабочая станция1 и рабочая станция2 со следующим XML:

< HOST_NAME >workstation3< /HOST_NAME >
< HOST_FQDN >workstation3.domain.com< /HOST_FQDN >
< IP >127.0.0.0< /IP >
< MAC >33:33:33:33:33:33< /MAC >

Я могу без проблем выполнить «пока чтение строки», но яникогда не использовал более одной переменной.

Спасибо за помощь!

1 Ответ

0 голосов
/ 06 мая 2019

Вся задача может быть выполнена с помощью одного вызова :

awk -v RS='\n\n' '{               
  print "< HOST_NAME >" $1 "< /HOST_NAME >" > $1
  print "< HOST_FQDN >" $2 "< /HOST_FQDN >" > $1
  print "< IP >"        $3 "< /IP >"        > $1
  print "< MAC >"       $4 "< /MAC >"       > $1

  close($1)
}' file

С учетом вашего примера ввода он создает два файла следующим образом:

рабочая станция1 :

< HOST_NAME >workstation1< /HOST_NAME >
< HOST_FQDN >workstation1.domain.com< /HOST_FQDN >
< IP >127.0.0.1< /IP >
< MAC >00:00:00:00:00:00< /MAC >

рабочая станция2 :

< HOST_NAME >workstation2< /HOST_NAME >
< HOST_FQDN >workstation2.domain.com< /HOST_FQDN >
< IP >127.0.0.2< /IP >
< MAC >11:11:11:11:11:11< /MAC >
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...