如何使用awk处理fasta文件奇数行:删除多余文本并添加指定字符串
解决方案
你可以直接用下面的单行awk命令完成处理:
awk 'BEGIN{FS=OFS="|"} /^>/{print $1, $3, "kraken:taxid|32630"; next} 1' 你的输入文件.fasta > 处理后输出文件.fasta
命令逻辑说明
- 开头
BEGIN{FS=OFS="|"}指定输入和输出的字段分隔符都为|,方便拆分和拼接字段 /^>/匹配所有以>开头的序列头行,比单纯判断奇数行兼容性更好,即使后续遇到序列内容折行的fasta文件也能正常处理- 匹配到头行后,仅输出第一、第三字段,再追加你需要的固定后缀
|kraken:taxid|32630 next跳过后续逻辑,避免头行重复输出- 末尾的
1是awk的常用简写,等价于直接输出所有非头行的序列内容,不会修改原始序列
你可以先拿你提供的示例文件测试,输出结果完全符合你给出的预期效果。
内容的提问来源于stack exchange,提问作者mgs3
相关产品推荐
相关产品推荐

