部分文字列の抽出

部分文字列の抽出

次のファイルがあります

Nt01    maker   mRNA    143295  155540  .   +   .   ID=Nitab4.5_0006317g0010.1;Parent=Nitab4.5_0006317g0010;Name=Nitab4.5_0006317g0010.1;_AED=0.08;_eAED=0.08;_QI=0|0.45|0.25|1|0.90|0.75|12|0|1011;Note="Peptidase S59%2C nucleoporin"
Nt01    maker   mRNA    170633  173860  .   +   .   ID=Nitab4.5_0006317g0020.1;Parent=Nitab4.5_0006317g0020;Name=Nitab4.5_0006317g0020.1;_AED=0.26;_eAED=0.26;_QI=15|0|0|0.83|0.6|0.33|6|0|424;Note="Putative S-adenosyl-L-methionine-dependent methyltransferase"
awk 'BEGIN{OFS="\t"} {print $1,$9,$4,$5}' test.txt | head
Nt01    ID=Nitab4.5_0006317g0010.1;Parent=Nitab4.5_0006317g0010;Name=Nitab4.5_0006317g0010.1;_AED=0.08;_eAED=0.08;_QI=0|0.45|0.25|1|0.90|0.75|12|0|1011;Note="Peptidase S59%2C nucleoporin" 143295  155540
Nt01    ID=Nitab4.5_0006317g0020.1;Parent=Nitab4.5_0006317g0020;Name=Nitab4.5_0006317g0020.1;_AED=0.26;_eAED=0.26;_QI=15|0|0|0.83|0.6|0.33|6|0|424;Note="Putative S-adenosyl-L-methionine-dependent methyltransferase"  170633  173860

これを次のように短縮することはどのように可能ですか?

Nt01    Nitab4.5_0006317g0010.1 143295  155540
Nt01    Nitab4.5_0006317g0020.1 170633  173860

ベストアンサー1

入力の空白がタブであり、出力もタブで区切られたいとします。

$ awk -F'[\t=;]' -v OFS='\t' '{print $1, $10, $4, $5}' file
Nt01    Nitab4.5_0006317g0010.1 143295  155540
Nt01    Nitab4.5_0006317g0020.1 170633  173860

おすすめ記事