首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sed从文本文件中删除特定的字符串,不更改输出文件?

使用sed从文本文件中删除特定的字符串,不更改输出文件?
EN

Unix & Linux用户
提问于 2023-05-22 17:22:23
回答 1查看 83关注 0票数 2

编辑:添加块引号文本

我有一个由标签分隔的文本文件(acc.paired.txt),其中包含了illumina示例名(head):

代码语言:javascript
复制
SRR10598163_R1.fastq.gz  SRR8916417_R2.fastq.gz
SRR10598049_R1.fastq.gz  SRR10598163_R2.fastq.gz  SRR8916418_R1.fastq.gz
SRR10598049_R2.fastq.gz  SRR10598164_R1.fastq.gz  SRR8916418_R2.fastq.gz
SRR10598050_R1.fastq.gz  SRR10598164_R2.fastq.gz  SRR8916419_R1.fastq.gz
SRR10598050_R2.fastq.gz  SRR10598165_R1.fastq.gz  SRR8916419_R2.fastq.gz
SRR10598051_R1.fastq.gz  SRR10598165_R2.fastq.gz  SRR8916420_R1.fastq.gz
SRR10598051_R2.fastq.gz  SRR10598166_R1.fastq.gz  SRR8916420_R2.fastq.gz
SRR10598052_R1.fastq.gz  SRR10598166_R2.fastq.gz  SRR8916421_R1.fastq.gz
SRR10598052_R2.fastq.gz  SRR10598167_R1.fastq.gz  SRR8916421_R2.fastq.gz
SRR10598053_R1.fastq.gz  SRR10598167_R2.fastq.gz  SRR8916422_R1.fastq.gz
SRR10598053_R2.fastq.gz  SRR10598168_R1.fastq.gz  SRR8916422_R2.fastq.gz
SRR10598054_R1.fastq.gz  SRR10598168_R2.fastq.gz  SRR8916423_R1.fastq.gz

我想做两个更改,1)删除重复的示例名称,2)删除特定示例名称之后的所有字符。我的目标输出是一个标签分隔的文本文件,它只包含没有重复的SRR###数字(没有_R#.fastq.qz)。示例目标输出:

代码语言:javascript
复制
SRR10598163
SRR8916417
SRR10598049
SRR8916418
SRR10598164
SRR10598050
SRR8916419
SRR10598165
SRR10598051
SRR8916420
SRR10598166
SRR10598052
SRR8916421
SRR10598167
SRR10598053
SRR8916422
SRR10598054
SRR10598168
SRR8916423

我转向sed删除字符模式:

代码语言:javascript
复制
`sed 's| _R1.fastq.gz||g' acc.paired.txt > out.txt`

out.txt无明显变化。

蒂娅。

EN

回答 1

Unix & Linux用户

发布于 2023-05-22 18:51:16

你可以

  • 使用tr将所有空格更改为换行符
  • 删除与_R1.fastq.gzsed匹配的所有内容
  • grep删除空行
  • 并对输出进行排序,用sort删除重复项:
代码语言:javascript
复制
% < acc.paired.txt tr ' ' '\n'  | sed -e 's/_R.\.fastq\.gz//' | grep . | sort -u
SRR10598049
SRR10598050
SRR10598051
SRR10598052
[...]

除了排序之外,输出结果与您的问题中显示的相同。

当然,在regexes中,.匹配任何字符,并且文字点与\.匹配。grep .只保留至少包含一个字符的行,这样就失去了tr从背靠背空间创建的空行。这还假设只有R1R9在那里,而不是R11左右。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/746670

复制
相关文章

相似问题

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