Запуск сценария через jenkins [закрыто]

Вот одно решение с perl

$ echo 'foo=bar=baz/quux' | perl -pe 's|^([^=]+=){2}\K[^=/]+/||'
foo=bar=quux

$ echo 'abc=foo=bar=baz/quux' | perl -pe 's|^([^=]+=){2}\K[^=/]+/||'
abc=foo=bar=baz/quux

Как видно из приведенных выше примеров, это ограничивает удаление текста только со 2-го = до /

  • ^([^= ]+=){2}\K от начала строки найти последовательность 2 текста, отличного от =, за которым следует =. \K означает положительный просмотр назад, а не часть строки замены
  • [^=/]+/ означает один или несколько символов, отличных от =/, заканчивающихся на /
    • Если такой текст найден, он удаляется

То же решение с sed

$ echo 'foo=bar=baz/quux' | sed -E 's|^(([^=]+=){2})[^=/]+/|\1|'
foo=bar=quux

$ echo 'abc=foo=bar=baz/quux' | sed -E 's|^(([^=]+=){2})[^=/]+/|\1|'
abc=foo=bar=baz/quux

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

1
14.12.2017, 07:52
0 ответов

Теги

Похожие вопросы