String 使用Bash替换文本文件中的字符串

String 使用Bash替换文本文件中的字符串,string,bash,shell,replace,String,Bash,Shell,Replace,我有一些非常简单的问题整天困扰着我: 如何获取$variable中的第一个数字 如何删除“;”之前的第一个数字 如何使用$updateenum更改号码 $updateenum=1 $variable="2;,A1,A2,A3,A4,A5,A6,A7,B1,B2,B3,B4,B5,B6,B7,C1,C2,C3,C4,C5,C6,C7,D1,D2,D3,D4,D5,D6,D7,E1,E2,E3,E4,E5,E6,E7,F1,F2,F3,F4,F5,F6,F7,G1,G2,G3,G4,G5"` 尝试

我有一些非常简单的问题整天困扰着我:

  • 如何获取
    $variable
    中的第一个数字

  • 如何删除
    “;”
    之前的第一个数字

  • 如何使用
    $updateenum
    更改号码

  • $updateenum=1

    $variable="2;,A1,A2,A3,A4,A5,A6,A7,B1,B2,B3,B4,B5,B6,B7,C1,C2,C3,C4,C5,C6,C7,D1,D2,D3,D4,D5,D6,D7,E1,E2,E3,E4,E5,E6,E7,F1,F2,F3,F4,F5,F6,F7,G1,G2,G3,G4,G5"`
    
    尝试:

    尝试:


    第一个数字:
    echo$variable | sed'/[^[:digit:]*\([[:digit:]*\).*/s::\1:'


    其他的可以相同地执行

    第一个数字:
    echo$variable | sed'/[^[:digit:]*\([[:digit:]*\).*/s::\1:'


    其他操作可以相同地完成

    这将一次性完成:

    variable=$(echo$variable | sed-E“s/[0-9]+?/$updateNum/”)

    基准:

    time variable=$(echo $variable | sed -E "s/[0-9]+?/$updateNum/") 
    
    real    0m0.002s
    user    0m0.001s
    sys     0m0.000s 
    

    这将一蹴而就:

    variable=$(echo$variable | sed-E“s/[0-9]+?/$updateNum/”)

    基准:

    time variable=$(echo $variable | sed -E "s/[0-9]+?/$updateNum/") 
    
    real    0m0.002s
    user    0m0.001s
    sys     0m0.000s 
    

    这个网站会有帮助:这个网站会有帮助:在一次调用中使用子进程会减慢执行速度-没有大的区别,在20次调用中,你会进入第二次,这不是拒绝投票的理由!?对于给定的问题规模,此解决方案清晰易懂。添加一条评论说“不能很好地扩展”是有帮助的,但否决票是错误的答案,而事实并非如此。我做了很多shell脚本编写,这对我来说只是一种不好的做法-否决票的计数,除非你能证明这个解决方案是正确的,否则应该避免使用这个解决方案——我不能。对于初学者来说,你的解决方案看起来很混乱,我敢肯定,而且你没有给出任何解释(我也没有,但我不是投反对票的人)。同样,alinsoar的解决方案是一个不完整的混乱,但你没有投他的反对票?你确定这次不公正的否决与OP接受我的答案无关吗?很抱歉,这与被接受的答案无关,这只是一个不好的做法,表明缺乏shell脚本知识,而且@Shahbaz很友好地链接到了所有“魔法”的描述这只是标准的shell代码使用子进程会降低执行速度,在一次调用中-没有大的区别,在20次调用中,您会进入第二次,这不是拒绝投票的原因!?对于给定的问题规模,此解决方案清晰易懂。添加一条评论说“不能很好地扩展”是有帮助的,但否决票是错误的答案,而事实并非如此。我做了很多shell脚本编写,这对我来说只是一种不好的做法-否决票的计数,除非你能证明这个解决方案是正确的,否则应该避免使用这个解决方案——我不能。对于初学者来说,你的解决方案看起来很混乱,我敢肯定,而且你没有给出任何解释(我也没有,但我不是投反对票的人)。同样,alinsoar的解决方案是一个不完整的混乱,但你没有投他的反对票?你确定不公正的否决票与OP接受我的答案无关吗?很抱歉,这与被接受的答案无关,这只是一个不好的做法,表明缺乏shell脚本知识,而且@Shahbaz很友好地链接到所有“魔法”的描述,这只是标准的shell代码