Задача:
Дана случайным образом генерируемая строка вида: 9 3484 5555 6734
Необходимо извлечь из неё каждую цифровую подстроку и присвоить генерируемой новой переменной вида xxx1, ... xxx4.
Неизвестна ни длинна изначальной строки - каждый раз может быть разная.
Ни количество потребных переменных - каждый раз количество подстрок может быть разным.Как это можно реализовать?
Подозреваю что потребуется цикл.
Не понимаю как определить длину строки и как присвоить подстроку переменной?
Так как скрипт очень фигово относится к конструкции типа:
ch=$(awk '{print substr($0,1,1)}')
Как получить подстроку и присвоить её переменной понял:
subStr=$(echo $xxx | awk '{print $1}')Для того чтобы сгенерировать n количество строк нужно узнать количество подстрок. Как???
По количеству пробелов считает не верно. Допустим между подстроками два пробела, а мне показывают четыре при подсчёте по этому методу:
count=$(echo $xxx | grep -o " " | wc -c)
Почему так, я могу предположить, допустим в строке есть пробелы в начале и конце строки которые не видно. Но как вычесть два лишних пробела из полученного числа?
Вариант $count - 2 не работает.
в цикле отрезать от строки пробелы, пока длина строки не станет нулевой и не кончатся пробелы
> Как получить подстроку и присвоить её переменной понял:
> subStr=$(echo $xxx | awk '{print $1}')Осталась последняя проблема:
Как указать в строке не awk '{print $1}') где 1 это цифра, а значение переменной которое генерируется в цикле? Не хочет awk жевать переменные, хоть я тресни!
>> Как получить подстроку и присвоить её переменной понял:
>> subStr=$(echo $xxx | awk '{print $1}')
> Осталась последняя проблема:
> Как указать в строке не awk '{print $1}') где 1 это цифра,
> а значение переменной которое генерируется в цикле? Не хочет awk
> жевать переменные, хоть я тресни!Решил и последнюю проблему. Пишется так:
awk '{print $'$i'}'