В linux есть файл locale.gen. и строки типа en_US.UTF-8 UTF-8. Каким образом я могу разделить строку на 2 переменные до пробела и после?
Вариант 1
читаем файл построчно в цикле(while) ридом(read), а уже в цикле каждую строку преобразуем в переменные примерно так:
$ LINE="zh_SG GB2312"
$ eval $(echo "$LINE" | awk '{print "var1="$1";var2="$2}')получим:
$ echo "$var1 $var2"
zh_SG GB2312
Вариант 2
Другой вариант это просто загнать в массив.
например есть файл lines.txt содержащий:
ru_RU.UTF-8 UTF-8
en_US.UTF-8 UTF-8
zh_SG GB2312
преобразовываем в массив:
$ lines=(`cat lines.txt`)
в итоге получим что в парных элементах массива будет находиться значения из первого столбца, а в непарных из второго, например для первой строки это:
$ echo ${lines[0]}
ru_RU.UTF-8
$ echo ${lines[1]}
UTF-8
через read
$ LINE="zh_SG GB2312"
$ IFS=' '; read var1 var2<<<$LINE
$ echo $var1
zh_SG
$ echo $var2
GB2312

через variable expansion
$ LINE="zh_SG GB2312"
$ echo ${LINE% *}
zh_SG
$ echo ${LINE#* }
GB2312