11 / 11 / 5
Регистрация: 08.09.2013
Сообщений: 88
1

Вывод определенных символов из строки

09.01.2017, 15:37. Показов 4876. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется файл, в нем одна строка, в которой без пробелов идет набор символов, например:
Name=Viktor&Sirname=Ivanov&Sex=Male&...&blablabla
Нужно средствами bash вытащить кусок строки "Sex=Male" и записать в отдельную переменную.

Не подскажите ли, как можно организовать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.01.2017, 15:37
Ответы с готовыми решениями:

проверить shell-переменную на наличие определенных символов
help! есть переменная, которая подается скрипту в качестве параметра. нужно ее проверить (подобно...

Вывод данных между определенных символов в строке
Имеется строка с данными: "*имя*файл*размер*...*..." Как считать и вывести сначала "имя" потом...

Программа - вывод определенных символов из ASCII-таблицы
Вот есть такая задача... Написать com-программу, которая выведет запрос про код начальной и...

Удаление из строки определенных символов
Подскажите плиз функцию которая удаляет с строки символы. Например ввели символ А и с строки str...

8
Эксперт NIX
3330 / 748 / 252
Регистрация: 28.06.2015
Сообщений: 1,543
Записей в блоге: 16
09.01.2017, 17:11 2
Может так?
Bash
1
perem=$(expr "$(cat text.txt)" : '.*\(Sex=Male\)')
0
11 / 11 / 5
Регистрация: 08.09.2013
Сообщений: 88
09.01.2017, 18:00  [ТС] 3
Существуют строки, содержащие "Sex=Female", "Sex=NULL", потому я надеялся, что существует способ, например, начиная с последовательности символов "Sex" вывести 10 символов (дабы в новой строке наверняка поместилась вся информация, ведь она может быть разной длины), после чего через пайп вытащить символы, заключенные между кавычками.

P.S. Используя Ваш метод, в выводе получал численные значения, смысл которых до конца не ясен. Немного походит на номер символа в строке.
0
74 / 74 / 17
Регистрация: 06.05.2016
Сообщений: 413
09.01.2017, 18:19 4
В вашем примере нет кавычек.
Код
\(Sex=[^&]*\)
1
Эксперт NIX
3330 / 748 / 252
Регистрация: 28.06.2015
Сообщений: 1,543
Записей в блоге: 16
09.01.2017, 18:24 5
Victor Grey, Вот сейчас я ни чего не поняла. А по первому условию у меня все работает
Миниатюры
Вывод определенных символов из строки  
0
Эксперт NIX
3330 / 748 / 252
Регистрация: 28.06.2015
Сообщений: 1,543
Записей в блоге: 16
09.01.2017, 19:29 6
Может я всоими словами. Вам нужны строки между разделителями "&" Начинающиеся на "Sex=" ?

Добавлено через 13 минут
Что то в этом роде?
Bash
1
cat text.txt | while read d; do grep -o "Sex=[^&]\+" <<<$d; done
Добавлено через 3 минуты
А может и так?
Bash
1
grep -o "Sex=[^&]\+" text.txt
Добавлено через 4 минуты
Каждую выведенную строчку можно записать в массив, замените только для удобства
цикл while на for

Добавлено через 35 минут
Bash
1
count=0; while read d; do perem[count]=$(expr "$d" : '.*\(Sex=[^&]\+\)'); ((count++)); done <text.txt
Bash
1
2
3
4
5
6
7
echo ${perem[0]}
echo ${perem[1]}
echo ${perem[2]}
Или
for((i=0; i<${#perem[@}; i++)); do
    echo ${perem[i]}
done
1
Эксперт NIX
2795 / 2038 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
09.01.2017, 19:56 7
Цитата Сообщение от nezabudka Посмотреть сообщение
Каждую выведенную строчку можно записать в массив, замените только
окончание на
Bash
1
| mapfile -t perem
1
Эксперт NIX
3330 / 748 / 252
Регистрация: 28.06.2015
Сообщений: 1,543
Записей в блоге: 16
09.01.2017, 20:13 8
Bash
1
2
mapfile -t < <(grep -o "Sex=[^&]\+" text.txt)
echo $(MAPFILE[@]}
0
11 / 11 / 5
Регистрация: 08.09.2013
Сообщений: 88
10.01.2017, 10:21  [ТС] 9
Цитата Сообщение от nezabudka Посмотреть сообщение
А может и так?

Bash
1
grep -o "Sex=[^&]\+" text.txt
Благодарю! Вы меня выручили.
Ушел читать ман по ключам грепа.
0
10.01.2017, 10:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2017, 10:21
Помогаю со студенческими работами здесь

Удаление определенных символов из строки
Открываем txt файл со строкой в мемо1. тут все ок) { if(OpenDialog1-&gt;Execute()) {...

Проверка строки на наличие определенных символов
Есть строка символов, мне нужно проверить есть ли там цифры или другие ненужные символы. Заранее...

Удаление нескольких определенных символов из строки
Наверное детский вопрос, но все же: есть строка из неё надо удалить все символы препенания (точки,...

Удаление из строки определенных сочетаний символов
Суть программы: пользователю необходимо задать строку символов и отдельно 4 слова. Необходимо...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru