Como resolver o erro "sed: unmatched '/'"

0

Eu gostaria de executar o seguinte comando em um script groovy que será executado no Jenkins:

def sedCmd = cat sample.txt | sed -n -e /word id=123/,/end id = 123/ p
def logs = sedCmd.execute()

O arquivo "sample.txt" é assim:

Thurs 20 Sep 2018 word id=123
The cat 
In the hat
Bla bla
Thurs 20 Sep 2018 end id=123
Test

Quando executo o comando, recebo o seguinte erro:

sed: unmatched '/'

Eu testei o mesmo comando localmente no meu terminal com pequenas pequenas alterações e ele funciona como deveria:

cat sample.txt | sed -n -e '/word id=123/,/end id = 123/ p'
    
por Ahmad 20.09.2018 / 17:03

1 resposta

1

Você terá muito mais sorte ao executar uma lista do que uma única string:

def sedCmd = ["sed", "-n", "/word id=123/,/end id=123/ p", "sample.txt"]
def process = sedCmd.execute()
process.waitFor()
process.err.readLines().each {line -> println "Err: $line"}
process.in.readLines().each  {line -> println "Out: $line"}
Out: Thurs 20 Sep 2018 word id=123
Out: The cat 
Out: In the hat
Out: Bla bla
Out: Thurs 20 Sep 2018 end id=123
    
por 20.09.2018 / 22:24

Tags