R仅覆盖文件的前几行

时间:2019-02-06 02:11:58

标签: r file overwrite

嗨,我想做一些我认为应该很简单但似乎找不到办法的事情。我有一些文件想要更改标题行中由关键字给出的某些文件。我要更改的行始终在前20行中,但不一定完全相同。

所以我想读前20行(这很容易),找到并更改我的字符串(再次很容易),然后覆盖文件的前20行,并保持下面的数千行不变。我将不得不做数百次,因此为什么我不想读整个文件并全部写出来。

我创建了一个非常简单的示例。警告如果运行此文件,我将在当前工作目录中创建一个名为Temp.txt的文件。

#Create Dummy text file 
write.table(file = "Temp.txt", data.frame(Test = letters[1:26]), row.names = F, quote = F)

然后我可以读入这些行并进行更改

# read top 5 lines of text file (In real life I need to look at 20, but for examples sake 2)
TestHeader = readLines("Temp.txt", n = 5)
# Find and replace my search string
TestHeader[grepl("c",TestHeader)] <- "My New Line"

# <what to do here?> I want to only write over first 20 lines 

很明显,我可以阅读全文并进行更改

TestHeader = readLines("Temp.txt")
TestHeader[grepl("c",TestHeader)] <- "My New Line"
writeLines(TestHeader, "Temp.txt")

但是,这将涉及不必要的读写成千上万的行。

0 个答案:

没有答案