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

时间:2012-11-23 13:37:12

标签: string bash shell replace

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

  1. 如何获取$variable中的第一个号码?

  2. 如何删除";"之前的第一个数字?

  3. 如何使用$updateNum更改号码?

  4. $updateNum= 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"`
    

3 个答案:

答案 0 :(得分:2)

尝试:

oldVal="${variable%%;*}"
variable="$updateNum;${variable#*;}"

答案 1 :(得分:0)

这将一气呵成:

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 

答案 2 :(得分:-1)

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

其他人可以完全相同