Hi all,
I have two lines of this type as output of a cli command:
Source | Status | Enable | IP address | Subnet mask
Static | Disabled | true | 2.2.2.2 | 255.255.0.0
I would like create a hash :
{“Source”=>“Static”, “Status”=>“Disabled”, “Enable”=>“true”, "IP
address "=>“2.2.2.2”, “Subnet mask”=>“255.255.0.0” }
Thank you
Protagora Protagora wrote in post #1171010:
Hi all,
I have two lines of this type as output of a cli command:
Source | Status | Enable | IP address | Subnet mask
Static | Disabled | true | 2.2.2.2 | 255.255.0.0
I would like create a hash :
{“Source”=>“Static”, “Status”=>“Disabled”, “Enable”=>“true”, "IP
address "=>“2.2.2.2”, “Subnet mask”=>“255.255.0.0” }
Thank you
use scan, and zip, flatten and Hash[]:
txt.scan(/[\w\d.]/)
[1,2,3].zip([‘a’,‘b’,‘c’]) >> [1,a],[2,b]…
[[1,2],[2,3],[4,5]].flatten >> [1,2,1,3,4,5]
Hash[1,2,3,4] >> {1=>2, 3=>4}
and see Convert multiline string to hash - Ruby - Ruby-Forum

Protagora Protagora wrote in post #1171010:
I have two lines of this type as output of a cli command:
Let me guess: this is some relational database’s CLI. I’d export as CSV
and then use Ruby’s CSV to load the file contents and convert them to
the Hash.
Cheers
robert
There is no database. This cli command displays results in that format
and I would like to have hash structure to run tests.
Bye
Protagora
Protagora Protagora wrote in post #1171010:
l1=stdin.gets.scan(/[\w\d.]+/)
stdin.gets
l2=stdin.gets.scan(/[\w\d.]+/)
res=Hash[*(l1.zip(l2).to_a.flatten)]