повторно использовать числовое значение из текстовой записи в последующих записях - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь автоматизировать процедуру и создать нужный мне выходной файл. Пока все идет хорошо, но я не могу понять, как взять число в конце одного ряда и заполнить его рядами после него.

Я пробовал решения с использованием awk, sed и т. Д., Но до сих пор не могу понять это даже с помощью многих googles.

POP-Test-01
10.10.10.10
Пользователь: Пользователь
Проход: Проход

POP-Test-02
10.10.10.11
Пользователь: Пользователь
Проход: Проход

POP-Test-03
10.10.10.12
Пользователь: Пользователь
Пропуск: Пропуск

Но я хочу, чтобы он взял числовые значения из первой строки и добавил их к пользователю и пропустил строки. Но для проходной линии я бы хотел добавить ее дважды.

POP-Test-01
10.10.10.10
Пользователь: User01
Pass: Pass0101

POP-Test-02
10.10.10.11
Пользователь: User02
Pass: Pass0202

POP-Test-03
10.10.10.12
Пользователь: User03
Pass: Pass0303

Это только примеры, но последние две цифры имени хоста (например, POP-Test-03) всегда будут цифрами.

Edit: У меня было несколько запросов на более подробную информацию. Извините за это, ребята, так что тут тощий. Обратите внимание, что все значения являются поддельными, они взяты из входного файла. Я просто использовал самые общие значения, которые только мог придумать.

Входные данные представляют собой текстовый файл со значениями только в верхнем примере. Поэтому я запускаю сценарий, который развертывает экземпляры, и единственный вывод, который я получаю из сценария развертывания, - это имя хоста и IP-адрес. Я знаю, что это не чисто, но ниже я добавляю имя пользователя и пароль. Но пользователь и пароль всегда одинаковы между каждой партией серверов, но к нему добавляется только номер сервера и пароль (дважды). Я делаю это, потому что приложение, которое мы используем, требует ввода: HOSTNAME
IP
Пользователь: (имя пользователя)
Pass: (пароль)
(пустая строка)

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

Итак, я начну с этого:
POP-Test-01
10.10.10.10

И я пытаюсь добраться до этого:
POP-Test-01
10.10.10.10
Пользователь: User01
Pass: Pass0101

awk '/([0-9]{1,3}[\.]){3}[0-9]{1,3}/{print;print "User\: 
Train";next}1' DeploymentDetails2.txt | tee DeploymentDetails2.txt<br/>

awk '/User/{print;print "Pass\: Training";next}1' 
DeploymentDetails2.txt | tee DeploymentDetails2.txt<br/>

awk '/Pass/{print;print "\n";next}1' DeploymentDetails2.txt | tee 
DeploymentDetails.txt<br/>

1 Ответ

0 голосов
/ 13 июня 2019

Похоже, это дает то, что вы ищете:

#!/bin/bash
HOST="POP-Test-"
IP=10
for i in {01..99} ; do
  echo ${HOST}${i}
  echo "10.0.10.${IP}"
  echo "User: User${i}"
  echo "Pass: Pass${i}${i}"
  echo
  let IP++
done

Поскольку вы не указали наличие входного файла, я взял на себя смелость сгенерировать конечное число в сценарии и использовать его повторно.в пользовательской и проходной линии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...