~marcelo-escobal/geined/Alianza

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
36
37
38
39
#!/usr/bin/env ruby
class File
  def replace(pattern, string)
    full_path = File.expand_path path
    return if !File.file?(full_path)
 
    reopen(full_path, 'r')
    lines = readlines
 
    changes = false
    lines.each do |line|
      changes = true if line.gsub!(pattern, string)
    end
 
    if changes
      reopen(full_path, 'w')
      lines.each do |line|
        write(line)
      end
      close
    end
  end
end

if ARGV.count != 3
    puts "Error: argumentos incorrectos"
    puts "Uso: srchrep.rb cadena_buscar cadena_reemplazar archivos"
    puts "Donde 'archivos' es una lista de archivos en formato *.* entre comillas "
else
    # ver si existe archivo
    # hacer una lista de archivos que tengan la cadena buscada
    files = Dir.glob(ARGV[2])
    numarch = files.count
    # por cada archivo de la lista
    for filename in files
        arch = File.open(filename)
        arch.replace(/#{ARGV[0]}/,ARGV[1])
    end
end