首页 > 系统相关 >Go Linux bash环境下 字符串strings.Trim截取无效

Go Linux bash环境下 字符串strings.Trim截取无效

时间:2023-02-04 22:45:12浏览次数:42  
标签:Trim numStr err fmt strconv result Linux Go strings

    result := "40%"
    if len(result) > 0 {
        fmt.Println("result:", result)
        numStr := strings.TrimSpace(strings.Trim(result, "%"))
        fmt.Println("numStr:", numStr)
        numFloat, err := strconv.ParseFloat(numStr, 4)
        if err != nil {
            fmt.Printf("strconv.ParseFloat Error:%v", err)
        }
        fmt.Println("float num:", numFloat)
    }

Linux 下报错 strconv.ParseFloat Error:strconv.ParseFloat: parsing "40%": invalid syntaxfloat num: 0

仔细查看输出:要去掉的%没有去除成功

result: 33%

numStr: 33%
strconv.ParseFloat Error:strconv.ParseFloat: parsing "33%": invalid syntaxfloat num: 0

测试解决方法: 字符串后面加一个换行符\n 解决

numStr := strings.TrimSpace(strings.Trim(result, "%\n"))
package main

import (
    "fmt"
    "os/exec"
    "strconv"
    "strings"
)

func main() {
    arg := "fping -C10 -p100  -b32 -t3000  -i100 8.8.8.8 | tail -n 1 | awk '{print $10}'"
    //arg := "fping -C10  -p100  -b32 -t3000  -i100 114.114.114.114 | tail -n 1 | awk '{print $10}'"
    // bash -c "fping -C10  -p100  -b32 -t3000  -i100 114.114.114.114 | tail -n 1 | awk '{print $10}
    //cmd := exec.Command("/bin/sh", "-c", arg)

    cmd := exec.Command("/bin/bash", "-c", arg)
    out, err := cmd.Output()
    if err != nil {
        fmt.Println(err)
    }
    result := string(out)
    if len(result) > 0 {
        fmt.Println("result:",result)
        numStr := strings.TrimSpace(strings.Trim(result,"%\n"))
        fmt.Println("numStr:",numStr)
        numFloat, err := strconv.ParseFloat(numStr, 4)
        if err != nil {
            fmt.Printf("strconv.ParseFloat Error:%v", err)
        }
        fmt.Println("float num:", numFloat)
    }
}

 

标签:Trim,numStr,err,fmt,strconv,result,Linux,Go,strings
From: https://www.cnblogs.com/zhangmingda/p/17092568.html

相关文章

  • Linux环境下:程序的链接, 装载和库[静态链接]
    看以下例子main.cexternintx;intmain(){inty=100;swap(&x,&y);return0;}intx=1;voidswap(int*x,int*y){inttemp=*x;......
  • django admin 后台管理展示配置
    展示数据库字段名称定义数据库表models.py定义数据库表文件modules.pyverbose_name:数据库数据的字段中文配置#告警通知地址classWebhook(models.Model):n......
  • Go应用服务疑似内存泄露问题排查
    背景为了保障业务的可用性,增加应用服务请求依赖服务(grpc、http)的熔断降级策略,避免依赖服务不可用的情况下,出现级联服务故障产生雪崩,通过熔断降级尽可能把影响缩放到最小。因......
  • linux基本功系列之history命令实战
    (文章目录)前言......
  • linux --- 0号进程,1号进程,2号进程
    0号进程0号进程称为idle进程,每个进程都有一个进程控制块PCB(ProcessControlBlock),PCB的数据结构类型是structtask_struct。idle进程对应的PCB是 structtask_structi......
  • GO 原子操作 atomic包
    原子操作简介原子操作即是进行过程中不能被中断的操作,针对某个值的原子操作在被进行的过程中,CPU绝不会再去进行其他的针对该值的操作。为了实现这样的严谨性,原子操作仅会......
  • go-fastdfs断点续传功能
    1)安装go-fastdfs:可以从GitHub上获取go-fastdfs的源码,然后使用goget命令安装:gogetgithub.com/sjqzhang/go-fastdfs2)安装tus:可以从GitHub上获取tus的源码,然后使......
  • LInux crontab
    crontab 内容简介一、crontab的基本介绍二、crontab语法三、crontab常用工具四、crontab的坑 一、crontab的基本介绍crontab是用来定期执行程序的命令,当安......
  • Linux系列教程(一)——Linux系统简介
    本系列教程将完整的讲解整个Linux相关的知识,这是楼主学完兄弟连的Linux教程之后重新对Linux知识体系的整理。个人感觉兄弟连的Linux教程可以很好的入门,从最基础的知识开......
  • gomonkey不生效
    gomonkey作用在运行时把原函数地址替换为目标函数地址go.modrequiregithub.com/agiledragon/gomonkey/v2v2.3.0a.gopackagemaintypeAstruct{}func(aA)get......