Ищу помощь в unix командах для извлечения и замены строки - PullRequest
0 голосов
/ 19 июня 2020

Мне нужна помощь по написанию сценариев оболочки Unix. У меня есть URL-адрес, как показано ниже:

https://jenkinsurl.com/job/GitHub%20Organization%20Scans/job/Project_Dev/job/reponame/job/dev/72/

Я хочу преобразовать строку выше в формат ниже:

"/var/jenkins_home/jobs/GitHub Organization Scans/jobs/Project_Dev/jobs/reponame/branches/dev/builds/$BUILD_NUMBER/log"

Я использовал приведенный ниже сценарий, чтобы извлечь его часть:

formatted_url=$(echo "$build_url_val" | cut -d'/' -f5-)

Результат:

GitHub%20Organization%20Scans/job/Securtization_Dev/job/awsFileRetrievalAPI/job/dev/72/

Но в приведенной выше строке я хочу заменить GitHub%20Organization%20Scans на сканирование организации GitHub, я думаю (%20 представляет пространство в кодированный формат), а также замените job на jobs.

Мне нужна помощь, чтобы получить вывод как:

"/var/jenkins_home/jobs/GitHub Organization Scans/jobs/Project_Dev/jobs/reponame/branches/dev/builds/$BUILD_NUMBER/log"

1 Ответ

0 голосов
/ 19 июня 2020

Как насчет этого. Жестко запрограммировать с помощью команды sed для добавления текста в начало и конец.

formatted_url="https://jenkinsurl.com/job/GitHub%20Organization%20Scans/job/Project_Dev/job/reponame/job/dev/72/"

echo $formatted_url | cut -d'/' -f4- | sed 's/%20/ /g;s/job/jobs/g' | sed 's/^/\/var\/jenkins_home\//;s/$/branches\/dev\/builds\/$BUILD_NUMBER\/log/'

Разумное объяснение команды:

1) echo $ formatted_url ==> Печать значение переменной formatted_url

2) cut -d '/' -f4- ==> будет вырезать URL-адрес из 4-го слова с помощью sla sh в качестве разделителя

3) sed /% 20 / / g; s / job / jobs / g '==> Заменяет% 20 пробелом, а job - заданиями

4) sed' s / ^ // var / jenkins_home //; s / $ / branch / dev / builds / $ BUILD_NUMBER / log / '==> Добавляет путь «/ var / jenkins_home /» в начале вывода и добавляет путь «ветки / dev / builds / $ BUILD_NUMBER / log» в конец вывода.

BUILD_NUMBER следует заменить на ваше значение

Вывод:

/ var / jenkins_home / jobs / GitHub Organization Scans / вакансии / Project_Dev / jobs / reponame / jobs / dev / 72 / branch / dev / builds / / журнал

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