anon1m0us wrote:
> Hi; I have a command to obtain all the groups a user is part of. The
> command is:
> dsquery user domainroot -samid <user name> | dsget user -memberof -
> expand
> 
> The output is:
> "CN=Domain Users,CN=Users,DC=testdc,DC=testroot,DC=test,DC=com"
> "CN=DA-C3-AB-AB1-SERVER-DATA-CHANGE,OU=ACL_Groups,OU=Groups,OU=ABC,DC=
> testdc,DC=testroot,DC=test,DC=com"
> 
> 
> I need to obtain the group name From after CN= until the first comma.
> I tried scan and match. I can't get it right.


irb(main):001:0> output = "CN=Domain Users,CN=Users,DC=testdc,DC=testroot,DC=test,DC=com"

irb(main):006:0> output.split(',')
=> ["CN=Domain Users", "CN=Users", "DC=testdc", "DC=testroot", "DC=test", "DC=com"]

irb(main):008:0> output.split(',').grep(/CN=/)
=> ["CN=Domain Users", "CN=Users"]

irb(main):009:0> output.split(',').grep(/CN=/).collect{|a| a=~/CN=(.*)/; $1}
=> ["Domain Users", "Users"]

You can do what you want with the final array.

The final collect part of the last line is a bit cryptic.  Others may follow 
with more elegant ways of doing this.

Martin