Можем ли мы установить IFS для диапазона чисел? - PullRequest
0 голосов
/ 19 сентября 2019

Я знаю, что мог бы позволить пользователю использовать обычные IFS, такие как пробел, запятая и т. Д., Но я бы хотел, чтобы пользователь мог просто вводить свою химическую формулу (то есть H2O) и разбивать ее на элементы и ихномера.Например, если Na2V2O5 является их входом, я хочу иметь возможность хранить эту информацию следующим образом:

Элемент1: Na Числофатомов: 2

Элемент2: V Числофатомов: 2

Элемент 3: O Числофатомов: 5

Можно ли разделить вещи по числу или даже искать заглавные буквы?Это для bash-скрипта.

1 Ответ

0 голосов
/ 19 сентября 2019

Да.

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

Однако сами цифры не сохраняются;разделители полей просто отбрасываются.

Совет: не пытайтесь писать парсеры в оболочке.

...