Как получить данные из grepped строки? - PullRequest
0 голосов
/ 25 июня 2019

Мне нужно получить данные из grepped строки, но я новичок.

У меня есть grep строка данных, подобная этой:

email=test@mail.com&id=12451233&name=Susanna&surname=Scott&street=East

Мне нужно проанализировать электронную почту, идентификатор, имя и фамилия из этого.

Пытался grep, как это:

sed -e 's/email\ \(.*\)&id/\1/'

Ничего не происходит (нужно сделать это с помощью sed) Отображение данных один под другим это второй шаг

ожидаемый формат:

test@mail.ru|12451233|Susanna|Scott

Ответы [ 2 ]

1 голос
/ 25 июня 2019

Вот ответ sed - простой, но выполняющий работу:

sed -e 's/email=//' -e 's/&id=/ /' -e 's/&name=/ /' -e 's/&surname=/ /' -e 's/&street=.*//'

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

sed -e 's/email=//' -e 's/&id=/|/' -e 's/&name=/|/' -e 's/&surname=/|/' -e 's/&street=.*//' 
1 голос
/ 25 июня 2019

Вы можете использовать awk

awk -F "=|&" '{print $2, $4, $6, $8}'

-F - фельдсеператор, в вашем случае они = или (|) &, а затем просто напечатать столбцы.

...