LINUX.ORG.RU

sed

 , ,


0

1

Салют. Появилось немного времени, вкуриваю sed. Вопрос. Есть строка формата:

"stat=on&data=123"
вытаскиваю data
echo "stat=on&data=123" | sed -n "s/^.*data=\([^&]*\).*$/\1/p"
и вроде норм. Но data может быть с переносом строк, к примеру
echo -e "stat=on&data=123\n456\n789" | sed -n "s/^.*data=\([^&]*\).*$/\1/p"
в выхлопе - 123. Как в регулярке учесть новую строку?

Ответ на: комментарий от anonymous

GET/POST запрос какой-нибудь, там по-любому многострочные данные. Тогда вот так:

str="stat=on&data=123
345
678"

echo $str ->

stat=on&data=123
345
678

echo $str | sed -n "s/^.*data=\([^&]*\).*$/\1/p" -> 123

gnu_linux
() автор топика
Ответ на: комментарий от anonymous

Не по феншую.... Правильно по «ключу» парсить. В строке может быть не только stat и data, но и другие параметры. Ладно, забей, я только начал. В пятницу башка не варит. Почитаю ещё.

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