Artificial intelligent assistant

IP address string manipulation problem I am trying to build three octets `10.AB.C9` from a 5 digit number: `12ABC`: * `12` = first octet * `AB` = Second octet * `C` = Third octet There are two scenarios with my existing code that can cause an in correct IP to generate. If C has a leading zero for example: 02 then the third octet will 027 and IPs can't have hardcoded leading zeros. five_digits=12620 if [ "${five_digits:4:1}" -eq 0 ]; then ip_main="10.${five_digits:2:2}.9" gateway_ip_prefix="10.${five_digits:2:2}.2" elif [ "${five_digits:4:1}" -ne 0 ]; then ip_main="10.${five_digits:2:2}.${five_digits:4:1}9" gateway_ip_prefix="10.${five_digits:2:2}.${five_digits:4:1}2" The above code solves the leading zero problem in C The second scenario is where A is zero meaning the second octet will have a leading zero. I am not sure how to handle that scenario and hopefully make the script simpler.

I would break each octet apart, and remove any leading zeroes from each, then concatenate them together. Something like this:


str="$five_digits"
if [[ ${#str} != 5 ]] || [[ ${str:0:2} != "12" ]]; then
echo invalid input >&2;
exit 1;
fi
a=10 # first octet, constant
b=${str:2:2} # second octet
b=${b#0} # remove one leading zero
c=${str:4:1}9 # third octet
c=${c#0} # remove one leading zero

res="$a.$b.$c" # concatenated result
echo "$res"


E.g. that turns the input string `12345` to `10.34.59`; `12055` to `10.5.59`; and `12000` to `10.0.9`.

xcX3v84RxoQ-4GxG32940ukFUIEgYdPy 4539cdade8ed682a8e3e11d0413ec6e7