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
,分隔符将是regexa
/[\]*/
- 根据需要打印存储在
中的拆分内容a
awk 'BEGIN {FS="\"";OFS="\t"}; {split($1,a,/[\ ]*/); print a[1],a[4],a[5],$2,$6}' file.txt
简要说明
:将split($1,a,/[\]*/
拆分到数组$1
,分隔符将是regexa
/[\]*/
- 根据需要打印存储在
中的拆分内容a