The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Извлечь несколько цифровых значений из генерируемой строки"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Извлечь несколько цифровых значений из генерируемой строки"  +/
Сообщение от DinDon (ok) on 24-Дек-12, 16:06 
Задача:
Дана случайным образом генерируемая строка вида: 9 3484 5555 6734
Необходимо извлечь из неё каждую цифровую подстроку и присвоить генерируемой новой переменной вида xxx1, ... xxx4.
Неизвестна ни длинна изначальной строки - каждый раз может быть разная.
Ни количество потребных переменных - каждый раз количество подстрок может быть разным.

Как это можно реализовать?
Подозреваю что потребуется цикл.
Не понимаю как определить длину строки и как присвоить подстроку переменной?
Так как скрипт очень фигово относится к конструкции типа:
ch=$(awk '{print substr($0,1,1)}')

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Извлечь несколько цифровых значений из генерируемой строки"  +/
Сообщение от DinDon (ok) on 24-Дек-12, 17:49 
Как получить подстроку и присвоить её переменной понял:
subStr=$(echo $xxx | awk '{print $1}')

Для того чтобы сгенерировать n количество строк нужно узнать количество подстрок. Как???
По количеству пробелов считает не верно. Допустим между подстроками два пробела, а мне показывают четыре при подсчёте по этому методу:
count=$(echo $xxx | grep -o " " | wc -c)
Почему так, я могу предположить, допустим в строке есть пробелы в начале и конце строки которые не видно. Но как вычесть два лишних пробела из полученного числа?
Вариант $count - 2 не работает.


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Извлечь несколько цифровых значений из генерируемой строки"  +/
Сообщение от name (??) on 24-Дек-12, 18:08 
в цикле отрезать от строки пробелы, пока длина строки не станет нулевой и не кончатся пробелы
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Извлечь несколько цифровых значений из генерируемой строки"  +/
Сообщение от DinDon (ok) on 24-Дек-12, 19:15 
> Как получить подстроку и присвоить её переменной понял:
> subStr=$(echo $xxx | awk '{print $1}')

Осталась последняя проблема:
Как указать в строке не awk '{print $1}') где 1 это цифра, а значение переменной которое генерируется в цикле? Не хочет awk  жевать переменные, хоть я тресни!

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Извлечь несколько цифровых значений из генерируемой строки"  +/
Сообщение от DinDon (ok) on 24-Дек-12, 19:35 
>> Как получить подстроку и присвоить её переменной понял:
>> subStr=$(echo $xxx | awk '{print $1}')
> Осталась последняя проблема:
> Как указать в строке не awk '{print $1}') где 1 это цифра,
> а значение переменной которое генерируется в цикле? Не хочет awk  
> жевать переменные, хоть я тресни!

Решил и последнюю проблему. Пишется так:
awk '{print $'$i'}'

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру