从多个文件中提取多列并将它们合并到一个表中

从多个文件中提取多列并将它们合并到一个表中

我有近 500 个文件,每个文件有超过 120 列,其中一些列是空白的。

hghflf.maf
lnuegflkn.maf
jdfrlbvfl11.maf
jkfbrhw4rkb4.maf
.... 

以下是前几列的数据头示例(总共 148 列):

  Hugo_Symbol Entrez_Gene_Id Center NCBI_Build Chromosome Start_Position
1     Unknown              0      .     GRCh38       chr2        4871838
2    RNU5E-7P              0      .     GRCh38       chr2       15866667
3      CAPN13              0      .     GRCh38       chr2       30736899
4     Unknown              0      .     GRCh38       chr2       35346478

我只想提取第 1,4,5 列,并为每个文件创建最后一列 (column43+column41/column43)(这些列未在示例中显示)(因此总共 4 列),并将它们合并为所有文件文件到一个表。知道该怎么做吗?


[编辑]为了column -t可读性而解析:

Hugo_Symbol  Entrez_Gene_Id  Center  NCBI_Build  Tumor_Sample_Barcode  Chromosome  Start_Position  Reference_Allele  Tumor_Seq_Allele2  Reference_Allele
Unknown      0               .       GRCh37      10-26934N             2           181552          T                 C                  T
Unknown      0               .       GRCh37      10-26934N             2           2742215         G                 A                  G
PQLC3        0               .       GRCh37      10-26934N             2           11291948        C                 T                  C
MIR3681HG    0               .       GRCh37      10-26934N             2           12522789        C                 A                  C
AC010880.1   0               .       GRCh37      10-26934N             2           16536811        C                 G                  C
Unknown      0               .       GRCh37      10-26934N             2           17111275        A                 C                  A
Unknown      0               .       GRCh37      10-26934N             2           19044748        A                 -                  A
Unknown      0               .       GRCh37      10-26934N             2           19114714        A                 G                  A
AC018742.1   0               .       GRCh37      10-26934N             2           21935272        T                 C                  T

答案1

使用awk

awk 'NR==1{ print $1, $4, $5, "Median" }
     FNR>1{ print $1, $4, $5, ($41+$43)/$43 }' ./multiple-files* >single-table-output

相关内容