gpt4 book ai didi

regex - golang exec 查找命令正则表达式

转载 作者:IT王子 更新时间:2023-10-29 02:02:46 25 4
gpt4 key购买 nike

<分区>

我正在尝试在 go 中编写一个 find 命令(下面的 shell 命令):

find . -mindepth 3 -maxdepth 3 -regex '.*\(type-a\|type-b\)\/os.*'

这是 go 片段:

package main

import (
"bytes"
"fmt"
"os/exec"
)

func main() {

cmd := exec.Command("/usr/bin/find", "/opt/system/versions",
"-mindepth", "3", "-maxdepth", "3",
"-regex", ".*(type-a|type-b)/os.*")

var out bytes.Buffer
var stderr bytes.Buffer
cmd.Stdout = &out
cmd.Stderr = &stderr

err:= cmd.Run()
if err != nil {
fmt.Println(fmt.Sprint(err) + ": " + stderr.String())
return
}
fmt.Println("Directory contents : ", out.String())
}

如果我只搜索 type-a(或只搜索 type-b),效果很好。当我搜索 type-atype-b 时不起作用(shell 命令工作正常)。我在输入 Command 的正则表达式模式中出错了什么?

当我使用 \ 转义 (, | and ) 时,go 提示转义序列 - 未知转义序列:(:

    cmd := exec.Command("/usr/bin/find", "/opt/system/versions",
"-mindepth", "3", "-maxdepth", "3",
"-regex", ".*\(type-a\|type-b\)/os.*")

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com