awkを使用して特定の列の最初の2つの単語のみを印刷する方法

awkを使用して特定の列の最初の2つの単語のみを印刷する方法

ファイルがありますA.tsv(フィールド区切り記号\t:):

BC02    Streptococcus oralis  chromosome, complete genome   2712    94  0   99.073  2053209 CP023507.1  1597
BC02    Staphylococcus aureus  chromosome, complete genome  2712    94  0   99.073  2053209 CP023507.1  1597
BC02    Streptococcus sp.  chromosome, complete genome  2712    94  0   99.073  2053209 CP023507.1  1597

各行の最後に、その列の最初の2つの単語のみを含む新しい列を追加して、次のように$2します。

BC02    Streptococcus oralis  chromosome, complete genome   2712    94  0   99.073  2053209 CP023507.1  1597    Streptococcus oralis
BC02    Staphylococcus aureus  chromosome, complete genome  2712    94  0   99.073  2053209 CP023507.1  1597    Staphylococcus aureus
BC02    Streptococcus sp.  chromosome, complete genome  2712    94  0   99.073  2053209 CP023507.1  1597    Streptococcus sp.

私はこれを使っていくつかのawkコマンドを見たいと思います。スタックテーマしかし、始めるのに十分な類似点はほとんどありません。

どうすればわかりますか?

ベストアンサー1

努力する分かれる()2列目の間隔を空けて、好きなだけ単語を印刷します。

awk 'BEGIN{ FS=OFS="\t" }
{ split($2, tmp, " "); print $0, tmp[1], tmp[2] }' infile

おすすめ記事