Need help manipulating shell stdout data

27 views
Skip to first unread message

David Reagan

unread,
May 13, 2015, 4:44:29 PM5/13/15
to ansible...@googlegroups.com
I have a shell task that registers data that looks similar to:

"stdout_lines": [
    "username\tuser...@domain.tld", 
    "username\tuser...@domain.tld", 
    "username\tuser...@domain.tld", 
    "username\tuser...@domain.tld", 
...,
]

What I'd really like to end up with is a variable that contains a list/has similar to { username: "username", emailprefix: "useremail", emaildomain: "domain.tld" }, { username: "username", emailprefix: "useremail", emaildomain: "domain.tld" }, ... { username: "username", emailprefix: "useremail", emaildomain: "domain.tld" }

Currently I've been trying to get the "useremail" part of each of those lines out so I can do something with it.

So far I've tried using this regex "\\t[a-zA-Z-]+@" and the regex_replace and match jinja filters.

match returns true or false as far as I can tell.

regex_replace lets me easily replace "useremail" with something, but not actually get "useremail" out of it.

For example, I can replace "useremail" with a space like this:

- debug: msg="{{ item|regex_replace('\\t[a-zA-Z-]+@',' ') }}"
  with_items: userinfo.stdout_lines

But that's not very helpful....

Any suggestions on how I can get what I want?

Note that the regex above also matches the \t and @ characters when tested on regexpal.com.


Reply all
Reply to author
Forward
0 new messages