[英]increment variable in a string in shell script
我有一个来自变量的字符串,我想增加它。 我该如何使用shell脚本呢?
这是我的输入,来自一个变量:
abc-ananya-01
输出应为:
abc-ananya-02
它更短:
a=abc-lhg-08
echo ${a%-*}-`printf "%02d" $((10#${a##*-}+1))`
abc-lhg-09
更好的是:
a=abc-lhg-08
printf "%s-%02d\n" ${a%-*} $((10#${a##*-}+1))
abc-lhg-09
检查一下:
kent$ echo "abc-ananya-07"|awk -F'-' -v OFS='-' '{$3=sprintf("%02d",++$3)}7'
abc-ananya-08
上面的代码会增加并保持您的数字格式。
使用纯Bash有点长:
IFS="-" read -r -a arr <<< "abc-ananya-01"
last=10#${arr[${#arr}-1]} # to prevent getting 08, when Bash
# understands it is a number in base 8
last=$(( last + 1 ))
arr[${#arr}-1]=$(printf "%02d" $last)
( IFS="-"; echo "${arr[*]}" )
这将读入一个数组,递增最后一个元素并将其打印回去。
它返回:
abc-ananya-02
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.