awk多字段分离器?

awk多字段分离器?,awk,Awk,我有一个大文件,上面有这样的行 chr1 HAVANA gene 11869 14409 . + . gene_id "ENSG00000223972.5"; gene_type "transcribed_unprocessed_pseudogene"; gene_name "DDX11L1"; level 2; havana_gene "OTTHUMG00000000961.2"; 我想提取ENSG000022972.5、DDX11L

我有一个大文件,上面有这样的行

chr1    HAVANA  gene    11869   14409   .       +       .       gene_id "ENSG00000223972.5"; gene_type "transcribed_unprocessed_pseudogene"; gene_name "DDX11L1"; level 2; havana_gene "OTTHUMG00000000961.2";
我想提取ENSG000022972.5、DDX11L1、chr1、11869和14409。 在前两项中,我通过以下方式取得了成功:

awk 'BEGIN {FS="\""}; {print $2"\t"$6}' file.txt

我现在正在努力提取chr1、11869和14409,因为这需要一个不同的feild分离器?如何在同一个平台上实现这一点;行???

尝试使用以下命令提取所需内容

awk 'BEGIN {FS="\"";OFS="\t"}; {split($1,a,/[\ ]*/); print a[1],a[4],a[5],$2,$6}' file.txt
简要说明

  • split($1,a,/[\]*/
    :将
    $1
    拆分到数组
    a
    ,分隔符将是regex
    /[\]*/
  • 根据需要打印存储在
    a
    中的拆分内容

尝试使用以下命令提取所需内容

awk 'BEGIN {FS="\"";OFS="\t"}; {split($1,a,/[\ ]*/); print a[1],a[4],a[5],$2,$6}' file.txt
简要说明

  • split($1,a,/[\]*/
    :将
    $1
    拆分到数组
    a
    ,分隔符将是regex
    /[\]*/
  • 根据需要打印存储在
    a
    中的拆分内容