-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtable_linker.rb
executable file
·35 lines (31 loc) · 950 Bytes
/
table_linker.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/env ruby
# Pedro Seoane Zonjic 13-12-2012
# Toma la informacion extraida de un archivo tabulado (donde la primera columna es el idetificador) en base a una lista de identificadores proporcionada
# la informacion se guarda en el archivo de salida
if ARGV.size < 3
puts "Usage: table_linker.rb file_table file_table output_file_name"
Process.exit
end
drop_line = FALSE
if !ARGV[3].nil?
drop_line = TRUE
end
hash_info={}
#Cargar tabla de informacion en hash en forma {identificador => campos de informacion}
File.open(ARGV[0],'r').each do |line|
fields=line.chomp.split("\t",2)
hash_info[fields.first]=fields.last
end
save_info=File.open(ARGV[2],'w') #Crea archivo para guardar la informacion
File.open(ARGV[1],'r').each do |line|
line.chomp!
fields = line.split("\t")
id = fields.first
info_id=hash_info[id]
if !info_id.nil?
save_info.puts line+"\t"+info_id
else
save_info.puts line if !drop_line
end
end
save_info.close