Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 18.11.2019
Сообщений: 31
1

Требуется извлечь нужный текст из переменной

05.07.2021, 18:37. Показов 1971. Ответов 12

Добрый вечер всем.

В переменной записан следующий текст:
Код
[{"id":1132,"iid":1,"project_id":2734533,"title":"add_branch","description":"Тестовый","state":"merged","created_at":"2021-07-02T15:02:05.814Z","updated_at":"2021-07-02T15:03:25.681Z","web_url":"https://gitlab.com/"}]
Требуется извлечь текст: "description":"Тестовый" с помощью Bash.

В какую сторону двигаться, что попробовать? Буду благодарен любой помощи
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.07.2021, 18:37
Ответы с готовыми решениями:

Вытащить нужный текст из переменной
Здравствуйте, помогите вытащить нужный текст.. Текст находится между: Текст там может любой...

Как извлечь текст из переменной "var"?
Используется "AngleSharp". С помощью выражения извлекается атрибут: var itemsAttr =...

Как из строки извлечь нужный фрагмент?
Может кто-нибудь подскажет команду? Так чтобы от конкретного символа до не менее конкретного...

Извлечь текст до определенного символа и извлечь из кавычек
Ребята, помогите, пожалуйста, с формулой. есть много текста в ячейках, в каждом тексте есть разные...

12
Эксперт NIX
1833 / 617 / 217
Регистрация: 28.06.2015
Сообщений: 1,347
Записей в блоге: 16
05.07.2021, 20:25 2
Наверное лучший инструмент процессор json
Код
jq .[].description
0
Покинул форум
3032 / 1067 / 292
Регистрация: 07.05.2015
Сообщений: 2,156
05.07.2021, 20:38 3
Лучший ответ Сообщение было отмечено Eugeneee как решение

Решение

jq - это хорошо, одно "НО": его нужно либо тянуть из репы, либо собирать самостоятельно. А ежели и то и другое не входит в планы, можно использовать, например, grep:
Bash
1
grep -Po '(?<="description":").*?(?=",)' <<< $var
Вообще в ход может идти и awk с sed, и vim, и любой из предустановленных интерпретаторов (perl или python). Но по факту вопрос требует уточнения: силами bash должна быть решена задачи или всё же с помощью внешних утилит.
0
0 / 0 / 0
Регистрация: 18.11.2019
Сообщений: 31
06.07.2021, 14:23  [ТС] 4
Сделал следующим образом:
Код
sed 's/^.*"description"://;s/,"state".*$//'
- вытянул значение description. Может еще кому пригодится.

Благодарю за помощь
0
Эксперт NIX
1833 / 617 / 217
Регистрация: 28.06.2015
Сообщений: 1,347
Записей в блоге: 16
06.07.2021, 15:22 5
Лучший ответ Сообщение было отмечено Eugeneee как решение

Решение

Цитата Сообщение от Eugeneee Посмотреть сообщение
Может еще кому пригодится.
Обязательно пригодится, например мне. Небольшой тюнинг:
Eugeneee,
Bash
1
sed -r 's/.*"description":("[^"]*").*/\1/'
greg zakharov,
Bash
1
grep -oP '"description":\K"[^"]*"'
1
219 / 75 / 19
Регистрация: 27.02.2016
Сообщений: 327
07.07.2021, 18:58 6
кстати есть "чисто" - перл модуль JSON:PP
https://metacpan.org/pod/JSON::PP
который позволяет делать де-сериализацию json в типы языка
годный для случая когда ничего "устанавливать" не разрешено
0
Покинул форум
3032 / 1067 / 292
Регистрация: 07.05.2015
Сообщений: 2,156
07.07.2021, 23:01 7
skouzmine, ну дык и у Python есть модуль json.
0
219 / 75 / 19
Регистрация: 27.02.2016
Сообщений: 327
07.07.2021, 23:21 8
не знаю питон столь хорошо чтобы оценить возможность самостоятельной установки json в "контролируемом" окружении на работе. емнип он все таки пакет а не тескстовый файл - в этом разница
0
Покинул форум
3032 / 1067 / 292
Регистрация: 07.05.2015
Сообщений: 2,156
07.07.2021, 23:30 9
skouzmine, json в Python из коробки.
0
219 / 75 / 19
Регистрация: 27.02.2016
Сообщений: 327
08.07.2021, 01:09 10
верно - спутал с YAML
0
3523 / 1440 / 244
Регистрация: 10.12.2013
Сообщений: 4,928
12.07.2021, 05:48 11
query.sql
SQL
1
SELECT json_extract(VALUE, '$.description') FROM json_each('[{"id":1132,"description":"Тестовый"}]');
Bash
1
sqlite3 < query.sql
output:
Тестовый
1
Эксперт NIX
1833 / 617 / 217
Регистрация: 28.06.2015
Сообщений: 1,347
Записей в блоге: 16
13.07.2021, 09:49 12
volodin661, Спасибо
Bash
1
2
3
4
5
sqlite3 <<EOF
SELECT json_extract(VALUE, '$.description')
FROM json_each('[{"id":1132,"description":"Тестовый"}]');
EOF
Тестовый
1
3523 / 1440 / 244
Регистрация: 10.12.2013
Сообщений: 4,928
13.07.2021, 12:23 13
Цитата Сообщение от nezabudka Посмотреть сообщение
volodin661, Спасибо
это был мой гражданский долг.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.07.2021, 12:23

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Как извлечь нужный элемент из List без Foreach?
Есть класс class Pathes { public string InnerPath { get; set; } ...

Как, при нажатии кнопки, загрузить нужный текст из БД текст в textarea
Есть динамически создаваемый список из БД (он двухуровневый), например: &lt;ul&gt; &lt;li&gt;item 1...

Вызвать нужный класс основываясь на значении переменной
Добрый вечер, ну или день у кого как :) У меня вопрос, вроде бы обычный но, я ищу весьма...

Требуется извлечь данные из ячейки
Доброго времени суток! Помогите пожалуйста! Требуется извлечь данные из ячейки : л/счет (число),...

Парсит нужный текст не до конца
Помогите, парсит только 1 строку, а нужно что бы все function Pars(T_, ForS, _T: string): string;...

Выдернуть нужный текст из PDF
Такая вот задача: Есть pdf файл с большим кол-ом страниц, почти на каждой страницы есть текст вида...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.