Читать файл в хэш с 2 значениями на ключ? - PullRequest
0 голосов
/ 25 апреля 2018

Очень похож на вопрос: Использование Ruby, чтение файла, содержащего пары имя / значение в хеш

файл:

server1, jim, 22 server2, bob, 44

Попробовал это регулярное выражение:

Hash[*File.read('file.cfg').split(/[, \n]+/)]

Но я получаю: odd number of arguments for Hash (ArgumentError)

Я пробую это: http://rubular.com/r/BE6ZG2nTMw

Какой способ подойти к этому? Проблема в том, как инициализируется хэш или мое регулярное выражение?

1 Ответ

0 голосов
/ 25 апреля 2018

Полагаю, это ожидаемый результат:

File.readlines('/tmp/blah.cfg').map do |line|
  line.split(',', 2).map(&:strip)
end.to_h
#⇒ {"server1"=>"jim, 22", "server2"=>"bob, 44"}

Можно также разбить остаток на массив:

File.readlines('/tmp/blah.cfg').map do |line|
  k, *v = line.split(',').map(&:strip)
  [k, v]
end.to_h
#⇒ {"server1"=>["jim", "22"], "server2"=>["bob", "44"]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...