Как избежать одинарных кавычек в команде sed конвейера Jenkins? - PullRequest
0 голосов
/ 06 мая 2020

Кажется, я не могу понять, как записать это в конвейере Jenkins?

sed -i "txt" "s/id 'com.github' ver '1.0'/id 'com.github'/g" file.txt

Это то, что я пытался до сих пор

sh """sed -i "txt" "s/id \'com.github\' ver \'1.0\'/id \'com.github\'/g" file.txt"""

У меня есть файл с содержимым -

id 'com.github'  ver '1.0'

Я хочу удалить

ver '1.0'

из

id 'com.github'  ver '1.0'

с помощью bash команда. Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 13 мая 2020

Это сработало для меня в Jenkinsfile -

script {
      dir('mydir') {
          def command = $/sed -i "s/id 'com.github'  ver '1.0'/id 'com.github'/" ./file.txt/$
          SED_OUT = sh(returnStdout: true, script: command)
      }
    }
0 голосов
/ 06 мая 2020

Вместо этого я бы использовал ed.

 printf '%s\n' "s/\(id 'com.github'\)  ver '1.0'/\\1/" wq | ed file.txt

Обратите внимание, что проблема с цитированием может быть исправлена ​​в sed (вы без необходимости избегаете одинарных кавычек), но ed является более стандартным и разработан для того, что вы пытаетесь сделать: редактировать файл на месте.

...