Привет, я хочу сделать что-то, что, на мой взгляд, должно быть простым, но, похоже, не могу найти способУ меня есть несколько файлов, которые я хочу изменить в строках заголовка, заданных ключевым словом.Строки, которые я хочу изменить, всегда находятся в первых 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")
Но это будетвовлекать излишне читать и писать тысячи и тысячи строк.