Ruby 脚本内的 Ruby 就地编辑

Posted

技术标签:

【中文标题】Ruby 脚本内的 Ruby 就地编辑【英文标题】:Ruby In-Place Edit Inside Ruby Script 【发布时间】:2018-08-28 15:56:27 【问题描述】:

我正在编写一个脚本,其中我需要执行的工作之一是用空字符串替换文件中字符串的每个实例,然后再继续执行其他工作。我更愿意在原地编辑而不是读取整个文件,执行 gsub,然后将其写回。

我知道我可以在命令行上执行此操作:

ruby -pi.bak -e "gsub(/MyText/, '')" INSERT_FILE_NAME

但由于我需要在此之后执行一些其他脚本操作,我如何从 Ruby 脚本中执行此操作?

【问题讨论】:

不确定这是不是最好的方法,但你可以用反引号和插值来调用它 @maxpleaner 不错! Ruby 超级新手,不知道这是可能的。随意写一个答案,我会接受 【参考方案1】:

即使在您给出的示例中,也没有“真正的”就地编辑;它只是看起来像一个。事实上,Ruby 读取一个文件,写入修改后的文件,然后重命名它们。这就是你得到一个 bak 文件的原因。

如果文件适合您的内存,您可以将整个文件读入 Ruby 变量,对字符串执行替换,然后将字符串写入同名文件。从技术上讲,它也不是真正的“就地编辑”,但非常接近您正在寻找的内容。

【讨论】:

以上是关于Ruby 脚本内的 Ruby 就地编辑的主要内容,如果未能解决你的问题,请参考以下文章

Ruby方法如何就地修改

有效删除Ruby中数组中其他元素的所有子字符串

就地编辑更新脚本安全

Ruby‘s Adventrue游戏制作笔记Unity角色攻击——发射子弹

Ruby‘s Adventrue游戏制作笔记Unity角色攻击——发射子弹

Ruby‘s Adventrue游戏制作笔记Unity角色攻击——发射子弹