使用Shell脚本的每个用户角色的新行条目

时间:2018-08-07 10:59:28

标签: shell unix sh

我需要以下帮助。我能够得到当前的输出,但是进一步的格式更改引起麻烦。

对于我的shell脚本,当前输出如下:-

Username  a
mail   a@mail
role ra1
role ra2
company ac
Username b
mail b@mail
role rb1
role rb2
company bc

我需要采用以下格式。

Username  mail          role  company
a                  a@mail    ra1    ac
a                  a@mail    ra2    ac
b                  b@mail    rb1    bc
b                  b@mail    rb2    bc

对于每个新角色,都需要添加带有用户属性的新行。角色数量因用户而异。

谢谢。

1 个答案:

答案 0 :(得分:0)

这个awk代码应该可以帮助您

..your..output..|awk '/^Username/{name=$2}
    /^mail/{mail=$2}
    /^role/{r[$2]}
    /^company/{comp=$2;for(x in r)print name,mail,x,comp;delete(r)}'

使用您的示例数据,它输出:

a a@mail ra1 ac
a a@mail ra2 ac
b b@mail rb1 bc
b b@mail rb2 bc