2014-04-17 8 views
-1

hy 파일을 구문 분석하여 uid, dbname 및 url과 같은 일부 매개 변수를 찾습니다. 내가하려고 어떤 는 CSV 파일을 전송하기 위해 해시의 모든 값을 얻을 것입니다해시로 여러 매개 변수 보내기

난 내 해시 (res_licence) 내가 아니라

UID 추천 PARAMS을 구문 분석 할 때, UID '] ='ADFS '; url, url '] ='https://mydom.sandboxbk.net '; DBNAME, 그가 무시하는 이유 :(

내가 찾을 수 없습니다

res_licence = Hash.new 

array = Dir.glob('configuration_*') 
array.each do |f| 
     file = File.open(f ,"r") 
     lines = file.readlines 

    lines.each do |line| 

    if line.include? 'uid' 
    uid = line.match(/(?=uid)(.*)/) 
    puts "" 
    puts "==>#{uid} " 
    #res_licence = { uid: uid} 
    end 


if line.include? 'url' 
    url = line.match(/(?=url)(.*)/) 
    puts "==>#{url} " 
     #res_licence = { url: url} 
    end 


if line.include? 'dbname' 
    dbname = line.match(/(?=dbname)(.*)/) 
    puts "=>#{dbname} " 

    end 
    res_licence = {uid: uid, url: url, dbname: dbname} 
    end 

end 

답변

0

, 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 }} 
,617을 난 내 문제에 대한 해결책을 발견,이 시간은 내가 UID => "XXX"를 해달라고 내가 그 출력 내가 훅 '[]과 견적을 제거하는 방법

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