使用awk或sed替换FASTA文件头部末尾的指定字符
解决FASTA文件头部末尾C替换为+的方法
下面提供两种bash环境下的实现方式,均仅修改以>开头的FASTA头部行,序列部分保持不变:
使用awk
利用awk的sub函数匹配并替换头部行末尾的C,同时保留所有行的输出:
awk '/^>/ {sub(/C$/, "+", $0)} 1' input.fasta > output.fasta
/^>/:匹配所有以>开头的头部行sub(/C$/, "+", $0):仅将当前行末尾的C替换为+($0代表整行内容)1:awk中非0值默认执行打印当前行的动作,保证序列行和修改后的头部行都能输出
使用sed
通过sed的地址定位和替换操作实现需求:
sed '/^>/ s/C$/+/' input.fasta > output.fasta
/^>/:定位所有以>开头的头部行s/C$/+/':对匹配到的行执行替换,将行尾的C替换为+
如果需要直接修改原文件(注意:此操作不可逆,建议先备份原文件),可以给sed添加-i参数:
sed -i '/^>/ s/C$/+/' input.fasta
内容的提问来源于stack exchange,提问作者Doda
相关产品推荐
相关产品推荐

