LINUX.ORG.RU

sed вырезать подстроку [РЕШЕНО]

 


0

2

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

bla-bla-bla ["bla-bla"]

вот мне нужно то, что внутри кавычек, причем ограниченное именно

[" "]
. Заранее спасибо



Последнее исправление: tigris (всего исправлений: 3)

echo «bla-bla-bla [\„bla-bla\“]» | grep -o \".*\"

PunkoIvan ★★★★
()
$ echo 'bla-bla-bla ["[one\"two]"]' | sed -r 's/[^"]*\["(.*)"].*/\1/'
[one\"two]
anonymous
()

вот от анонимуса почти работает :)

исходная строка такая:

{"code":200,"lang":"en-ru","text":["привет"]}

вот мне и нужно оттуда привет вытащить, но там может быть и не одно слово. пытаюсь в awesome на кнопку повесить переводчик, пока добился только ответа от сервера ))) осталось распарсить. использовать С для написания парсера мне кажется глупо, вот и пришел за помощью.

tigris
() автор топика
grep -P -o '(?<=\[\").*(?=\"\])'
ashot ★★★★
()
Ответ на: комментарий от tigris
echo '{"code":200,"lang":"en-ru","text":["привет"]}' | grep -P -o '(?<=\[\").*(?=\"\])'
привет
ashot ★★★★
()
Ответ на: комментарий от anonymous

Лорчую этого анонима.
А ещё есть божественный jq. Не стоит парсить жсон регулярками.

NeverLoved ★★★★★
()

огромное всем спасибо!

tigris
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.