我需要从grepped的字符串中获取数据,但是我是新手。
我已经像这样提取了数据字符串:
email=test@mail.com&id=12451233&name=Susanna&surname=Scott&street=East
我需要从中解析电子邮件,ID,姓名和姓氏。
尝试使用grep:
sed -e 's/email\ \(.*\)&id/\1/'
什么也没发生(需要使用sed来完成) 第二步显示数据
预期格式:
test@mail.ru|12451233|Susanna|Scott
答案 0 :(得分:1)
您可以使用awk
awk -F "=|&" '{print $2, $4, $6, $8}'
-F
是长分隔符,在您的情况下为=
或(|
)&
,然后仅打印列。
答案 1 :(得分:1)
这是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=.*//'