求助:编写bash/awk脚本转换CSV格式的miRNA数据
用bash/awk实现CSV文件miRNA名称填充脚本
需求:将CSV文件中的miRNA名称填充到对应序列行的左侧,直到出现新的miRNA名称为止。
输入示例
Organism: hsa, ,let-7a-2-3p ,,CTGTACAGCCTCCTAGCTTTCC, ,,Totals: , ,mir-7a-3p ,,CTATACAATCTACTGTC, ,,CTATACAATCTACTGTCT,
期望输出示例
Organism: hsa,let-7a-2-3p,CTGTACAGCCTCCTAGCTTTCC Organism: hsa,let-7a-2-3p,Totals: Organism: hsa,mir-7a-3p,CTATACAATCTACTGTC Organism: hsa,mir-7a-3p,CTATACAATCTACTGTCT
实现代码
直接用awk命令即可处理输入文件,命令如下:
awk -F',' ' $1 != "" { org = $1 } $2 != "" { mir = $2 } $3 != "" { printf "%s,%s,%s\n", org, mir, $3 } ' input.csv
代码说明
-F',':设置逗号为字段分隔符,方便拆分每行内容$1 != "" { org = $1 }:捕获第一列非空的行内容(即物种信息)并存储到变量org$2 != "" { mir = $2 }:捕获第二列非空的行内容(即miRNA名称)并存储到变量mir$3 != "" { ... }:当第三列非空时,把之前存储的物种信息、miRNA名称和当前第三列内容拼接后输出,自动剔除多余的逗号
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

