Usando o separador de vários campos de caracteres em awk
$ echo 'uid=12345(mylogin) gid=100(users)' | awk -F'[=()]' '{print "Login: " $3 "\nId: " $2 "\nGroup: " $6}'
Login: mylogin
Id: 12345
Group: users
-
-F'[=()]'
set=
ou(
ou)
como separadores de campo -
$3
será o terceiro campo, após o primeiro=
e o primeiro(
terminado por)
. Por isso, obtém o valormylogin
- Da mesma forma para outros campos e imprimir conforme necessário