awk 按照指定行名顺序提取数据
2022-03-29 本文已影响0人
吃吃吃_就知道吃
说明
需要f1:第一列为需要提取的行名,tab分割;

f2:第一列为行名

默认输出第一行
脚本
awk 'BEGIN{FS=OFS="\t"}NR==FNR{a[NR]=$1}NR>FNR&&FNR==1{print $0}NR>FNR{b[NR,$1]=$0}END{for(i=1;i<length(a)+1;i++){for(j=1;j<NR+1;j++){if(b[j,a[i]] != ""){print b[j,a[i]]}}}}' pheno.file matrix.02
####转换:
awk '
BEGIN{
FS=OFS="\t"
}NR==FNR{
a[NR]=$1
}NR>FNR&&FNR==1{
print $0
}NR>FNR{
b[NR,$1]=$0
}END{
for(i=1;i<length(a)+1;i++){
for(j=1;j<NR+1;j++){
if(b[j,a[i]] != ""){
print b[j,a[i]]
}
}
}
}' pheno.file matrix.02
结果
