出力を次のように変更したいと思います。
- 含まれている行はsgで始まり、次に置き換える必要が
(GROUP ) R
あります。(GROUP ) R
props(USERLIST)
- 含む行は
(USER ) R
suで始まり、行の(USER ) R
末尾から削除する必要があります。
ファイル1.txt
host server1
group1 (GROUP ) R
group2 (GROUP ) R
group3 (GROUP ) R
group4 (GROUP ) R
user1 (USER ) R
user2 (USER ) R
host server2
group5 (GROUP ) R
group6 (GROUP ) R
group7 (GROUP ) R
user3 (USER ) R
user4 (USER ) R
host server3
group8 (GROUP ) R
group9 (GROUP ) R
user5 (USER ) R
user6 (USER ) R
期待される出力
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
ベストアンサー1
そしてAWK:
awk '{if( $2 == "(GROUP" ) {print "sg "$1" props(USERLIST)"} else if ( $2 == "(USER" ) {print "su "$1} else print $0}' file1.txt
そしてSED:
sed -i '/GROUP/ s/.*\(group[0-9]\).*/sg \1 props(USERLIST)/g;/USER/ s/.*\(user[0-9]\).*/su \1/g' file1.txt