我知道我可以让用户使用常见的IFS,例如空格,逗号等,但是我希望能够让用户简单地输入其化学式(即H2O)并将其分解为元素和数字。例如,如果输入Na2V2O5,我希望能够按以下方式存储此信息:
元素1:Na原子数:2
元素2:V原子数:2
元素3:O原子数:5
是否可以按数字分隔事物,甚至寻找大写字母?这是一个bash脚本。
答案 0 :(得分:0)
是的
$ IFS=1234567890 read -a atoms <<< "Na2V2O5"
$ declare -p atoms
declare -a atoms=([0]="Na" [1]="V" [2]="O")
但是,数字本身并未保留;字段拆分器只是被丢弃。
一个建议:不要尝试在shell中编写解析器。