在文本文件中不删除任何AGTC charachter

时间:2015-06-05 10:19:21

标签: linux bash

我有一个Text文件,它应该包含A,G,C,T字符。但是它有时会有一些我想要删除的未知字符(很少),如果是N则用A替换它。另外我想要转义以>符号开头的行。

到目前为止,我只知道如何用A取代N,我喜欢这样:

 sed "s/N/A/g" file1.fa >file2.fasta

但我不知道如何完成第一项任务。

示例:

初始档案

  

第一行   AGCCCMCCCN

目标文件应该是这样的

  

第一行   AGCCCCCCA

任何帮助都将不胜感激。提前谢谢!

1 个答案:

答案 0 :(得分:2)

您可以在sed

上进行其他替换
sed -e 's/N/A/g' -e 's/[^AGCT>]//g' -e 's/^>/\\>/' -e 's/[^\]>//g' file1.fa > file2.fasta

模式1

-e 's/N/A/g'

您的模式首先用A取代所有N的实例。

模式2

-e 's/[^AGCT>]//g'

其次,替换不是A,G,C,T或>的所有字符。什么都没有。

模式3

-e 's/^>/\\>/'

然后替换>的所有实例它位于带有\>

的字符串的开头

模式4

-e 's/[^\]>//g'

最后删除所有> \ n \ n前面没有\

的字符