我有几个R脚本,我的客户只是想改变图形的颜色。
有没有办法一次找到并替换all而不是find& replace逐个打开脚本?
我尝试了一个名为fnr的小工具和.txt文件,它可以工作,但它没有.R文件。
答案 0 :(得分:2)
这是使用R的一种方法,您可以在其中创建一个在文件中查找和替换文本的函数,然后将该函数应用于目录中的所有R脚本。
在下面的示例中,这会将任何R脚本中的代码color = 'green'
更改为color = 'blue'
。
# Define function to find-and-replace text in a single file
file_find_replace <- function(filepath, pattern, replacement) {
file_contents <- readLines(filepath)
updated_contents <- gsub(x = file_contents, pattern = pattern, replacement = replacement)
cat(updated_contents, file = filepath, sep = "\n")
}
# Apply the function to each of the R scripts in the directory
my_r_scripts <- list.files(path = my_dir, pattern = "(r|R)$")
for (r_script in my_r_scripts ) {
file_find_replace(r_script,
"color = 'green'",
"color = 'blue'")
}
答案 1 :(得分:0)
我找到了一个名为grepWin的非常有用的工具。它有很多搜索和替换选项。它搜索子文件夹,不同类型的匹配,日期过滤器等......
下载答案 2 :(得分:0)
还有一个regexxer:https://github.com/GNOME/regexxer(对于Linux)。 RStudio开发人员似乎也在开发一种解决方案,如此处所述(其中包含有关其他方法的信息):https://github.com/rstudio/rstudio/issues/2066
答案 3 :(得分:0)
xfun
R程序包具有一些功能来完全做到这一点(gsub_file()
,gsub_dir()
等)
例如,如果您所有的R脚本都位于工作目录的子文件夹中,则只需编写以下内容即可:
library(xfun)
gsub_dir(dir = "Scripts", pattern = "color = 'green'", replacement = "color = 'blue'")