Extract numbers from string using shell
There are a lot of ways to do this, one is to use sed

echo R5C9 | sed -E 's|R(.*)C(.*)|{\1, \2}|'


Or, if you want to ensure that only input with the correct format will be matched

echo R5C9 | sed -E 's|R([[:digit:]]+)C([[:digit:]]+)|{\1, \2}|'


Some explanations:


-E enables extended regular expressions, which among other things makes the matching of the pattern easier
s|SOURCE|TARGET| is the substitution command to transform SOURCE into TARGET
R([[:digit:]]+)C([[:digit:]]+) is the source pattern we are looking for: An R followed by at least one digit [[:digit:]]+ followed by C followed again by at least one digit
The target replaces the matched source, with \1 standing for the text matched within the first () in the source, \2 for the second




You can also just use bash itself

[[ "R5C9" =~ R([0-9]+)C([0-9]+) ]] &amp;&amp; echo "{${BASH_REMATCH[1]}, ${BASH_REMATCH[2]}}"



[[ "R5C9" =~ R([0-9]+)C([0-9]+) ]] matches the text, with R([0-9]+)C([0-9]+) being basically the same as the source pattern above
Matching parts within () get assigned to the shell array BASH_REMATCH
The echo is only executed if the match ([[ ... ]]) was successfull, and then prints the reformatted expression (which is a bit confusing to read because the various {} mean different things...)