Мне нужно удалить строку файла последовательно с ruby, но безуспешно.
Если я открываю файл с флагом w +, он становится полностью пустым, а если я открываю с флагом r +, ничего не происходит.
Я даже пытался сделать это с помощью системной команды sed, но безрезультатно.
Что не так?
$ cat teste.txt
foo
bar
- This is by ruby way:
$ cat ruby.rb
#!/usr/bin/ruby
path = '/home/paulosgf/hack/metasploit/teste.txt'
File.open(path, 'r+') do |file|
file.each do |line|
puts(line)
line.gsub(/^.$\n/, '')
end
file.close()
end
$ ./ruby.rb
foo
bar
$ cat teste.txt (nothing happens)
foo
bar
- This is by sed way:
$ cat sed.rb
#!/usr/bin/ruby
path = '/home/paulosgf/hack/metasploit/teste.txt'
File.open(path, 'r+') do |file|
file.each do |line|
puts(line)
system("sed -i", "/#{line}/d #{path}")
end
file.close()
end
$ ./sed.rb
foo
bar
$ cat teste.txt
foo
bar
Мне нужно получить следующую строку, выполнить некоторую обработку и удалить эти строки в конце, но все строки остаются в файле.