在groovy字符串中定义sed命令

时间:2019-01-03 12:26:37

标签: groovy sed

我正在尝试将其创建为常规字符串:

sed 's/.*value="\([^"]*\)".*/\1\n/g'

在常规中,我尝试过:

def sedCommand = "sed 's/.*value="\([^"]*\)".*/\1\n/g'"

但是它给出了:Groovy:unexpected char: '\' @...

我尝试过各种引号,反斜杠等,但它一直在抱怨。

最终,sed表达式将像这样使用:

Process process = [ 'bash', '-c', "curl -k --silent -X GET --insecure --silent $URL | hxselect '#token' | sed 's/.*value="\([^"]*\)".*/\1\n/g' " ].execute()

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以使用slashy string,在这里您只需要转义正斜杠并保留其余斜杠:

With mySheet
    .Protect ...., AllowFormattingCells:=True
    .EnableSelection = xlUnlockedCells
End With

它将代表

def sedCommand = /sed 's\/.*value="\([^"]*\)".*\/\1\n\/g'/

请参见online Groovy demo