register output from shell command, match line to supplied value and return value of different column

8 views
Skip to first unread message

Ansible Madness

unread,
Dec 3, 2018, 9:03:54 AM12/3/18
to Ansible Project

merely looking for some suggestions how to perform the following actions in ansible

1) run a shell command (ok this one is easy), it will return a list of values in the format of:

  A B C D
  D E F G

2) now i want to match a line with a value and return the value of a DIFFERENT column.. so using the above, i want to match F but return the value of column 1 (in the example this would be "D") as a variable that i can use further in the playbook.
(matching the search value is easy to get a true or false however i am perplexed how to do this the ansible way)

In pure linux i could hack this with a grep of "F" and awk out the column i want, but trying to not do everything with the shell module if i dont need to.

Any suggestions welcome.

Thanks



Kai Stian Olstad

unread,
Dec 3, 2018, 9:45:55 AM12/3/18
to ansible...@googlegroups.com
On Monday, 3 December 2018 15:03:54 CET 'Ansible Madness' via Ansible Project wrote:
>
> 1) run a shell command (ok this one is easy), it will return a list of
> values in the format of:
>
> A B C D
> D E F G
>
> 2) now i want to match a line with a value and return the value of a
> DIFFERENT column.. so using the above, i want to match F but return the
> value of column 1 (in the example this would be "D") as a variable that i
> can use further in the playbook.
> (matching the search value is easy to get a true or false however i am
> perplexed how to do this the ansible way)
>
> In pure linux i could hack this with a grep of "F" and awk out the column i
> want, but trying to not do everything with the shell module if i dont need
> to.

Parsing string/text in Ansible is not trivial as you would need a lot more code to do it.
Since you already running shell piping it through awk '{if ($3 == "F") print $1}' is a lot easier.


--
Kai Stian Olstad


Reply all
Reply to author
Forward
0 new messages