简体   繁体   English

R中如何读取txt文件并替换word?

[英]How to read txt file and replace word in R?

In file a.txt containing "abc", I want to replace "abc" with "ccccccccccccccccccccc", How to read and replace in R?在包含“abc”的文件a.txt中,我想将“abc”替换为“cccccccccccccccccccccc”,如何在R中读取和替换? Thank you!谢谢你!

a.txt contents: a.txt内容:

{\rtf1
{\fonttbl{\f1\fmodern\fcharset134;}}
{\info}
\sectd\pgwsxn11907\pghsxn16840\marglsxn1418\margrsxn1418
\margtsxn1440\margbsxn1440\sectdefaultcl
\headery851{\header\pard\qr\fs18\par}
\footery992{\footer\pard\qc\f0\fs18\chpgn\par}
\pard\qc\sb30\sa30\fs21 \par
\trowd\trautofit1\trgaph0\trleft-75\intbl\trqc           
\clbrdrt\brdrs\brdrw30\clbrdrb\brdrs\brdrw10\clvertalc\cellx6993\clbrdrt
\brdrs\brdrw30\clbrdrb\brdrs\brdrw10\clvertalc\cellx13986\clbrdrt\brdrs\brdrw30
\clbrdrb\brdrs\brdrw10\clvertalc\cellx20979
\qc\fs21 x\cell\qc\fs21 y\cell\qc\fs21 z\cell\row
\trowd\trautofit1\trgaph0\trleft-75\trqc                  
\clvertalc\cellx6993\clvertalc\cellx13986
\clvertalc\cellx20979
\qc\fs21 a\cell\qc\fs21 b\cell\qc\fs21 abc\cell\row
\trowd\trautofit1\trgaph0\trleft-75\intbl\trqc   
\clbrdrb\brdrs\brdrw30\clvertalc\cellx6993\clbrdrb\brdrs\brdrw30
\clvertalc\cellx13986\clbrdrb\brdrs\brdrw30\clvertalc\cellx20979
\qc\fs21 d\cell\qc\fs21 e\cell\qc\fs21 f\cell\row
}    

It's easy : 这很简单 :

  • load your text in R using readLines (or scan) 使用readLines(或扫描)在R中加载文本
  • change your pattern using sub or gsub 使用sub或gsub更改您的模式
  • export your text to a text file using writeLines or scan 使用writeLines或scan将文本导出到文本文件

Example: 例:

tx  <- readLines("~/Desktop/text.txt")
tx2  <- gsub(pattern = "abc", replace = "ccccccccccccccccccccc", x = tx)
writeLines(tx2, con="~/Desktop/text2.txt")

See R Programming wikibooks if you want to know more 如果您想了解更多信息,请参阅R编程wikibooks

Original @PAC's variant but without creating variables.原始@PAC 的变体,但没有创建变量。 It uses the R-base native pipe (R 4.1.0) and the stringr package (a part of the tidyverse).它使用 R-base native pipe (R 4.1.0) 和stringr package(tidyverse 的一部分)。

readLines("~/Desktop/text.txt") |>
  stringr::str_replace(
    pattern = "abc", 
    replace = "ccccccccccccccccccccc") |>
  writeLines(con = "~/Desktop/text2.txt")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM