2番目の列を使用してソートして、ファイルから2つの列を抽出します。

2番目の列を使用してソートして、ファイルから2つの列を抽出します。

以下の形式のファイルがあります。

ATOM    126  CD  GLN A 449      -2.853  11.592 119.709  1.00 17.95           C  
ATOM    127  OE1 GLN A 449      -4.056  11.297 119.695  1.00 20.83           O  
ATOM    128  NE2 GLN A 449      -1.948  10.876 120.359  1.00 14.98           N  
HETATM  129  N   MSE A 450      -4.523  16.830 119.280  1.00 14.88           N  
HETATM  130  CA  MSE A 450      -5.537  17.804 118.911  1.00 15.65           C  

ファイルには、最初の列に異なる名前を持つ数百の行があります。 ATOMという行(最初の列)とATOMの11番目の列の値を抽出したいと思います。次に、値を並べ替えます(最も小さいものから最大のものまで)。 grep、awk、sedなどを使用してこれを行い、.txtファイルに出力するにはどうすればよいですか?

ベストアンサー1

awk '$1=="ATOM"{print $11}' file | sort -n > foo.txt

または:

awk '$1=="ATOM"{print $1, $11}' file | sort -k2,2n > foo.txt

ATOMを出力に含めるかどうかによって異なります。

おすすめ記事