回答
事情是这样的:
File.open(output_file, "w") do |ofile|
File.foreach(input_file) do |iline|
ofile.puts(iline) unless iline =~ Key_phrase
end
end
我用我想打开的文本文件的名称替换淡蓝色的单词“文件”? – 2012-03-19 13:20:10
不,这就是'output_file'和'input_file'的作用。如果您稍后更新您的问题,我会相应地更新答案。 – 2012-03-19 13:22:26
你在'do'之前的第一行错过了''''。 – Linuxios 2012-03-19 13:47:57
这是一次性的,独立的任务吗?编辑文件到位? 如果是以下的一行可能会派上用场:
ruby -i.bak -ne 'print unless /key phrase/' file-to-hack.txt
这改变了文件,并备份原来的。 如果您要使用这个大计划的一部分,加上环周围的每一行..
或者没有Ruby:'sed -i.bak -ne'/关键短语/ d'文件名.txt'。 – 2012-03-19 13:41:20
当然,如果我们打开问题的范围。顺便说一句,s/ruby/perl /上面的另一个答案:) – inger 2012-03-19 15:52:50
另一种方法是使用红宝石内(而不是从命令行)就地编辑:
#!/usr/bin/ruby
def inplace_edit(file, bak, &block)
old_argv = Array.new(ARGV)
old_stdout = $stdout
ARGV.replace [file]
ARGF.inplace_mode = bak
ARGF.lines do |line|
yield line
end
ARGV.replace old_argv
$stdout = old_stdout
end
inplace_edit 'test.txt', '.bak' do |line|
print line unless line.match(/something/)
print line.gsub(/search1/,"replace1")
end
如果您不想创建备份,然后将'.bak'更改为''。
- 1. 去除一切Ruby和Rails
- 2. 清理JSON - 使用Ruby去除不必要的属性
- 3. 使用Ruby去除HTML文档中的文本
- 4. 除去重复行
- 5. 去除空行C#
- 6. 从字符串去除HTML Ruby on Rails
- 7. 使用VI去除冒号
- 8. 使用Javascript去除班级
- 9. 使用Nokogiri去除元素
- 10. 使用mod_rewrite去除垃圾
- 11. 使用Touchspin去除div
- 12. 的XElement除去使用LINQ
- 13. 帮助去除使用jQuery
- 14. 使用Javascript去除图像
- 15. 使用JQuery去除div类
- 16. 使用ghostscript去除图层
- 17. 使用JQuery去除链接
- 18. QTableWidget的上去除多行
- 19. 的preg_match - 执行console.log去除
- 20. 去除CSV空行文件
- 21. 重复的行去除
- 22. PHP - 换行和BR去除
- 23. 去除数据框中行
- 24. 去Ruby:直接IronRuby?
- 25. 除去
- 26. 去除
- 27. 如何使用Python对信号进行平均去除噪声
- 28. 我应该如何使用Android去除SQLite中的链接行?
- 29. 如何使用Perl正则表达式去除换行符?
- 30. 如何使用FINDSTR从robocopy日志文件中去除%行?
在文件中还是在读入内容中? – Linuxios 2012-03-19 13:13:43