首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除文件中的行并将修改后的文件输出到R中?

如何删除文件中的行并将修改后的文件输出到R中?
EN

Stack Overflow用户
提问于 2020-02-12 01:30:28
回答 1查看 42关注 0票数 0

我有以下数据。这是一个大型.SAM文件的开始。我需要删除第24、25和26行,并将输出写入与.SAM文件相同的文件。有什么简单的方法可以做到吗?

代码语言:javascript
复制
@HD     VN:1.0  SO:unsorted
@SQ     SN:10   LN:130694993
@SQ     SN:11   LN:122082543
@SQ     SN:12   LN:120129022
@SQ     SN:13   LN:120421639
@SQ     SN:14   LN:124902244
@SQ     SN:15   LN:104043685
@SQ     SN:16   LN:98207768
@SQ     SN:17   LN:94987271
@SQ     SN:18   LN:90702639
@SQ     SN:19   LN:61431566
@SQ     SN:1    LN:195471971
@SQ     SN:2    LN:182113224
@SQ     SN:3    LN:160039680
@SQ     SN:4    LN:156508116
@SQ     SN:5    LN:151834684
@SQ     SN:6    LN:149736546
@SQ     SN:7    LN:145441459
@SQ     SN:8    LN:129401213
@SQ     SN:9    LN:124595110
@SQ     SN:X    LN:171031299
@SQ     SN:Y    LN:91744698
@PG     ID:bowtie2      PN:bowtie2      VN:2.3.4.1      CL:"/opt/rit/spack-app/linux-rhel7-x86_64/gcc-4.8.5/bowtie2-2.3.4.1-jl5zqymv3rkp64s5oovgymylg5eftfoi/bin/bowtie2-align-s --wrapper basic-0 -x /work/LAS/geetu-lab/hhvu/index_files/mm10/bowtie2-ensembl/mm10 -S /work/LAS/geetu-lab/hhvu/project1/chip-seq/1_bowtie2/I10_S64_L005.bam -U I10_S64_L005_R1_001.fastq"
@PG     ID:bowtie2-2F3DB176     PN:bowtie2      VN:2.3.4.1      CL:"/opt/rit/spack-app/linux-rhel7-x86_64/gcc-4.8.5/bowtie2-2.3.4.1-jl5zqymv3rkp64s5oovgymylg5eftfoi/bin/bowtie2-align-s --wrapper basic-0 -x /work/LAS/geetu-lab/hhvu/index_files/mm10/bowtie2-ensembl/mm10 -S /work/LAS/geetu-lab/hhvu/project1/chip-seq/1_bowtie2/I10_S64_L006.bam -U I10_S64_L006_R1_001.fastq"
@PG     ID:bowtie2-54BA705F     PN:bowtie2      VN:2.3.4.1      CL:"/opt/rit/spack-app/linux-rhel7-x86_64/gcc-4.8.5/bowtie2-2.3.4.1-jl5zqymv3rkp64s5oovgymylg5eftfoi/bin/bowtie2-align-s --wrapper basic-0 -x /work/LAS/geetu-lab/hhvu/index_files/mm10/bowtie2-ensembl/mm10 -S /work/LAS/geetu-lab/hhvu/project1/chip-seq/1_bowtie2/I10_S64_L007.bam -U I10_S64_L007_R1_001.fastq"
@PG     ID:bowtie2-31E64087     PN:bowtie2      VN:2.3.4.1      CL:"/opt/rit/spack-app/linux-rhel7-x86_64/gcc-4.8.5/bowtie2-2.3.4.1-jl5zqymv3rkp64s5oovgymylg5eftfoi/bin/bowtie2-align-s --wrapper basic-0 -x /work/LAS/geetu-lab/hhvu/index_files/mm10/bowtie2-ensembl/mm10 -S /work/LAS/geetu-lab/hhvu/project1/chip-seq/1_bowtie2/I10_S64_L008.bam -U I10_S64_L008_R1_001.fastq"
J00102:65:HF3WFBBXY:6:1101:2777:1806    16      12      77384783        1       50M     *       0       0       TCCTTTCCCAATCTGTTGGTGGTCTTTTTGTCTTACTGACGGTGTCTTTT      FFJFF7JJJFAJJJFJJJFA-JJJJJJJJFFJJJJJJJJJJJJJJFAFAA      AS:i:0  XS:i:0  XN:i:0  XM:i:0  XO:i:0  XG:i:0  NM:i:0  MD:Z:50 YT:Z:UU
J00102:65:HF3WFBBXY:8:1101:2341:1965    0       13      73416403        40      50M     *       0       0       GAGAAGGGAAGGGAACAATTGGAAGGGGGATTTGTGAGATGACGATTGGG      AAF<AFJ<7FFJJJJFFJJJJJJ<JJJJJA<FFJF-<A7<-F-<7-<A-A      AS:i:-6 XN:i:0  XM:i:2  XO:i:0  XG:i:0  NM:i:2  MD:Z:40C1A7     YT:Z:UU
EN

回答 1

Stack Overflow用户

发布于 2020-02-12 01:35:32

以字符串向量的形式读取文件:

代码语言:javascript
复制
file_path <- "foo.SAM"
fh <- file(file_path)
file_content <- readLines(fh)
close(fh)

编辑字符串向量:

代码语言:javascript
复制
new_content <- file_content[-c(24, 25, 26), ]

将折叠的字符串向量写回磁盘:

代码语言:javascript
复制
cat(paste0(new_content, collapse="\n"), file="foo.SAM", "\n")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60174425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档