2014-04-17 35 views
-1

hy 我解析文件以查找像uid,dbname和url的一些参数。 什么我尝试做的是让哈希所有的价值为csv文件发送它发送多个参数散列

当我分析我的散列(res_licence)我只有3个PARAMS像

UID,UID“] =” ADFS “; url,url'] ='https://mydom.sandboxbk.net'; DBNAME,

我找不到为什么他重写:(

​​

回答

0

我发现了一个解决我的问题,这时候我没有UID => “XXX”,URL => “XXX”

configs = {} 
Dir.glob('configuration_*').each do |filename| 
configs[filename]= Hash.new 
    File.foreach(filename) do |line| 


     if line.include? 'uid' 
       next unless line.match(/(?=uid).*?[\'\"].*?[\'\"](.*?)[\'\"](.*?)[\;\"]/) 
       field, value = line.split("=",2); 
      (configs[filename] = [] << value.strip.gsub("';", "").gsub("'","")) 
       #(configs[filename][:uid] ||= []) << value.strip.gsub("';", "").gsub("'","") 
     end 
    CSV.open("/tmp/data.csv", "wb", Options = {quote_char: "\0" }) {|csv| configs.each {|input| csv << input }} 

现在我有最后一个问题,当我执行脚本我得到的输出

configuration_groupe-poult.mydomain.net.php,["group", "https://groupe-poult.mydomain.net", "group"] 
configuration_kb-in.mydomain.net.php,["kbin", "https://kb-in.mydomain.net", "kauf"] 

我怎么能勾去掉'[]和报价“?

0

我的猜测是,该变量是在那里你将它们分配块内局部在脚本的开头添加这样的:

uid = nil 
url = nil 
dbname = nil