我有一个像这样的行的大文件
chr1 HAVANA gene 11869 14409 . + . gene_id "ENSG00000223972.5"; gene_type "transcribed_unprocessed_pseudogene"; gene_name "DDX11L1"; level 2; havana_gene "OTTHUMG00000000961.2";
我想提取ENSG00000223972.5,DDX11L1,chr1,11886和14409。 我在前两个方面取得了成功:
awk 'BEGIN {FS="\""}; {print $2"\t"$6}' file.txt
我现在很难提取chr1,11869和14409,因为这需要一个不同的feild分离器?这是如何完成的;行?? ??
答案 0 :(得分:1)
尝试使用以下命令提取您想要的内容,
awk 'BEGIN {FS="\"";OFS="\t"}; {split($1,a,/[\ ]*/); print a[1],a[4],a[5],$2,$6}' file.txt
简要说明,
split($1,a,/[\ ]*/
:将$1
拆分为数组a
,分隔符为正则表达式/[\ ]*/
a
中的拆分内容。答案 1 :(得分:1)
$ awk -F'[ "]+' -v OFS='\t' '{print $1, $4, $5, $10, $16}' file
chr1 11869 14409 ENSG00000223972.5 DDX11L1