我有一个来自变量的字符串 我想增加它。我怎么能用shell脚本呢?
这是我输入的变量:
abc-ananya-01
输出应该是:
abc-ananya-02
答案 0 :(得分:3)
它更短:
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
答案 1 :(得分:1)
检查一下:
kent$ echo "abc-ananya-07"|awk -F'-' -v OFS='-' '{$3=sprintf("%02d",++$3)}7'
abc-ananya-08
以上代码会增加并保留您的数字格式。
答案 2 :(得分:1)
使用纯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
答案 3 :(得分:1)