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

时间:2019-09-19 13:43:24

标签: bash ifs

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

元素1:Na原子数:2

元素2:V原子数:2

元素3:O原子数:5

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

1 个答案:

答案 0 :(得分:0)

是的

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

但是,数字本身并未保留;字段拆分器只是被丢弃。

一个建议:不要尝试在shell中编写解析器。