我们可以将 IFS 设置为一个数字范围吗?

Can we set IFS to a range of numbers?

我知道我可以让用户使用常见的 IFS,如 space、逗号等,但我希望能够让用户简单地输入他们的化学式(即 H2O)和将其拆分为元素及其编号。例如,如果 Na2V2O5 是他们的输入,我希望能够按如下方式存储此信息:

元素 1:Na 原子数:2

Element2: V Numberofatoms: 2

元素 3:O 原子数:5

是否可以按数字或什至寻找大写字母来分隔事物?这是一个 bash 脚本。

是的。

$ IFS=1234567890 read -a atoms <<< "Na2V2O5"
$ declare -p atoms
declare -a atoms=([0]="Na" [1]="V" [2]="O")

但是,数字本身并没有被保留;场分离器被简单地丢弃。

忠告:不要尝试在 shell.

中编写解析器