将文本添加到文本文件的开头,而不必复制R中的整个文件

时间:2015-11-05 18:48:11

标签: r

我有很多大文本文件,我想在最开始添加一行。我看到有人问过这个here。但是,这涉及读取整个文本文件并将其附加到单行。是否有更好(更快)的方式?

2 个答案:

答案 0 :(得分:1)

我在Windows 7上测试了这个并且它可以工作。基本上,您使用shell函数并在窗口cmd上执行所有操作,速度非常快。

write_beginning <- function(text, file){

  #write your text to a temp file i.e. temp.txt
  write(text, file='temp.txt')
  #print temp.txt to a new file 
  shell(paste('type temp.txt >' , 'new.txt'))
  #append your file to new.txt
  shell(paste('type', file, '>> new.txt'))
  #remove temp.txt - I use capture output to get rid of the 
  #annoying TRUE printed by file.remove
  dump <- capture.output(file.remove('temp.txt'))
  #uncomment the last line below to rename new.txt with the name of your file
  #and essentially modify your old file
  #dump <- capture.output(file.rename('new.txt', file))
}

#assuming your file is test.txt and you want to add 'hello' at the beginning just do:
write_beginning('hello', 'test.txt')    

在linux上你只需找到相应的命令就可以将文件发送到另一个(我真的认为你需要在linux上用type替换cat但我现在无法测试)

答案 1 :(得分:0)

您在Linux发行版上使用system()函数:

system('cp file.txt temp.txt; echo " " > file.txt; cat temp.txt >> file.txt; rm temp.txt')