TrimSuffix
发布者:admin 发表于:439天前 阅读数:580 评论:0

本文整理汇总了Golang中bytes.TrimSuffix函数的典型用法代码### 示例。如果您正苦于以下问题:Golang TrimSuffix函数的具体用法?Golang TrimSuffix怎么用?Golang TrimSuffix使用的例子?那么恭喜您, 这里精选的函数代码### 示例或许可以为您提供帮助。

在下文中一共展示了TrimSuffix函数的20个代码### 示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码### 示例。

示例1: snmpTranslate

// snmpTranslate resolves the given OID.
// The contents of the oid parameter will be replaced with the numeric oid value.
// If name is empty, the textual OID value is stored in it. If the textual OID cannot be translated, the numeric OID is stored instead.
// If mibPrefix is non-nil, the MIB in which the OID was found is stored, with a suffix of "::".
func snmpTranslate(mibPrefix *string, oid *string, name *string) error {
    if strings.ContainsAny(*oid, ":abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") {
        out, err := execCmd("snmptranslate", "-m", "all", "-On", *oid)
        if err != nil {
            return Errorf(err, "translating %s", *oid)
        }
        *oid = string(bytes.TrimSuffix(out, []byte{'\n'}))
    }

    if *name == "" {
        out, err := execCmd("snmptranslate", "-m", "all", *oid)
        if err != nil {
            //TODO debug message
            *name = *oid
        } else {
            if i := bytes.Index(out, []byte("::")); i != -1 {
                if mibPrefix != nil {
                    *mibPrefix = string(out[:i+2])
                }
                out = out[i+2:]
            }
            *name = string(bytes.TrimSuffix(out, []byte{'\n'}))
        }
    }

    return nil
}

开发者ID:li-ang,项目名称:telegraf,代码行数:31,代码来源:snmp.go

示例2: statsPerNUMA

// statsPerNUMA gathers hugepages statistics from each NUMA node
func statsPerNUMA(path string) (map[string]HugepagesNUMAStats, error) {
    var hugepagesStats = make(map[string]HugepagesNUMAStats)
    dirs, err := ioutil.ReadDir(path)
    if err != nil {
        return hugepagesStats, err
    }

    for _, d := range dirs {
        if !(d.IsDir() && strings.HasPrefix(d.Name(), "node")) {
            continue
        }

        hugepagesFree := fmt.Sprintf("%s/%s/hugepages/hugepages-2048kB/free_hugepages", path, d.Name())
        hugepagesNR := fmt.Sprintf("%s/%s/hugepages/hugepages-2048kB/nr_hugepages", path, d.Name())

        free, err := ioutil.ReadFile(hugepagesFree)
        if err != nil {
            return hugepagesStats, err
        }

        nr, err := ioutil.ReadFile(hugepagesNR)
        if err != nil {
            return hugepagesStats, err
        }

        f, _ := strconv.Atoi(string(bytes.TrimSuffix(free, newlineByte)))
        n, _ := strconv.Atoi(string(bytes.TrimSuffix(nr, newlineByte)))

        hugepagesStats[d.Name()] = HugepagesNUMAStats{Free: f, NR: n}

    }
    return hugepagesStats, nil
}

开发者ID:Maksadbek,项目名称:telegraf,代码行数:34,代码来源:hugepages.go

示例3: execAndParseCols

func (r *Repository) execAndParseCols(subcmd string) ([][2]string, error) {
    cmd := exec.Command("hg", "-v", "--debug", subcmd)
    cmd.Dir = r.Dir
    out, err := cmd.CombinedOutput()
    if err != nil {
        return nil, fmt.Errorf("exec `hg -v --debug %s` failed: %s. Output was:\n\n%s", subcmd, err, out)
    }

    out = bytes.TrimSuffix(out, []byte("\n")) // remove trailing newline
    lines := bytes.Split(out, []byte("\n"))
    sort.Sort(byteSlices(lines)) // sort for consistency
    refs := make([][2]string, len(lines))
    for i, line := range lines {
        line = bytes.TrimSuffix(line, []byte(" (inactive)"))

        // format: "NAME      SEQUENCE:ID" (arbitrary amount of whitespace between NAME and SEQUENCE)
        if len(line) <= 41 {
            return nil, fmt.Errorf("unexpectedly short (<=41 bytes) line in `hg -v --debug %s` output", subcmd)
        }
        id := line[len(line)-40:]

        // find where the SEQUENCE begins
        seqIdx := bytes.LastIndex(line, []byte(" "))
        if seqIdx == -1 {
            return nil, fmt.Errorf("unexpectedly no whitespace in line in `hg -v --debug %s` output", subcmd)
        }
        name := bytes.TrimRight(line[:seqIdx], " ")
        refs[i] = [2]string{string(id), string(name)}
    }
    return refs, nil
}

开发者ID:alexsaveliev,项目名称:go-vcs,代码行数:31,代码来源:repo.go

示例4: adjustedOutputPosition

func (p *docPrinter) adjustedOutputPosition() int64 {
    b := p.buf.Bytes()
    b = bytes.TrimSuffix(b, []byte{'*'})
    b = bytes.TrimSuffix(b, []byte{'[', ']'})
    b = bytes.TrimSuffix(b, []byte{'*'})
    b = bytes.TrimSuffix(b, []byte{'&'})
    return p.outputPosition() - int64(p.buf.Len()-len(b))
}

开发者ID:gosuri,项目名称:dotfiles,代码行数:8,代码来源:doc.go

示例5: ExampleTrimSuffix

func ExampleTrimSuffix() {
    var b = []byte("Hello, goodbye, etc!")
    b = bytes.TrimSuffix(b, []byte("goodbye, etc!"))
    b = bytes.TrimSuffix(b, []byte("gopher"))
    b = append(b, bytes.TrimSuffix([]byte("world!"), []byte("x!"))...)
    os.Stdout.Write(b)
    // Output: Hello, world!
}

开发者ID:achanda,项目名称:go,代码行数:8,代码来源:example_test.go