我有一个Text文件,它应该包含A,G,C,T字符。但是它有时会有一些我想要删除的未知字符(很少),如果是N则用A替换它。另外我想要转义以>
符号开头的行。
到目前为止,我只知道如何用A取代N,我喜欢这样:
sed "s/N/A/g" file1.fa >file2.fasta
但我不知道如何完成第一项任务。
示例:
初始档案
第一行 AGCCCMCCCN
目标文件应该是这样的
第一行 AGCCCCCCA
任何帮助都将不胜感激。提前谢谢!
答案 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前面没有\
的字符