我正在编写一个脚本,其中我需要执行的一项工作是用空字符串替换文件中字符串的每个实例,然后再继续做其他工作。我更喜欢编辑而不是读取整个文件,做一个gsub,然后把它写回来。
我知道我可以在命令行上执行此操作:
ruby -pi.bak -e "gsub(/MyText/, '')" INSERT_FILE_NAME
但是由于我需要在此之后执行其他一些脚本操作,如何从Ruby脚本中执行此操作?
答案 0 :(得分:0)
即使在您提供的示例中,也没有“真正的”就地编辑;它看起来就像一个。实际上,Ruby读取一个文件,编写修改后的文件并重命名它们。这就是你得到一个bak文件的原因。
如果文件适合您的内存,您可以将整个文件读入Ruby变量,对字符串执行替换,然后将字符串写入同名文件。从技术上讲,它也不是真正的“就地编辑”,而是非常接近你正在寻找的东西。