sed -e '/(GROUP ) R/{s//props(USERLIST)/; s/^/sg /;}' \
-e '/(USER ) R/{s///; s/^/su /;}' \
-e 's/[[:blank:]][[:blank:]]*/ /g' file >newfile
Este é um comando sed
com três expressões sed
.
- Para linhas que contêm
(GROUP ) R
: substitua essa sequência por props(USERLIST)
e insira sg
no início da linha.
- Para linhas que contêm
(USER ) R
: remova essa sequência e insira su
no início da linha.
- Substitua vários caracteres de espaços em branco consecutivos por um único espaço em todas as linhas.
O resultado é escrito em newfile
e, para a entrada dada, a saída será
host server1
sg group1 props(USERLIST)
sg group2 props(USERLIST)
sg group3 props(USERLIST)
sg group4 props(USERLIST)
su user1
su user2
host server2
sg group5 props(USERLIST)
sg group6 props(USERLIST)
sg group7 props(USERLIST)
su user3
su user4
host server3
sg group8 props(USERLIST)
sg group9 props(USERLIST)
su user5
su user6