何千もの分子座標を含むファイルがLinuxにあります。各分子は常に同じパターンを含む線で始まります。
@<TRIPOS>MOLECULE
その後、別の行に進みます。ファイルを複数のファイルに分割したいです。各ファイルには特定の数の分子が含まれています。これを行う最も簡単な方法は何ですか?
ベストアンサー1
1つの方法は、次のものを使用することですawk
。
awk -v moleculesNum=7 '
/^@<TRIPOS>MOLECULE/{
if((++num)%moleculesNum==1){
close(outfile); outfile="file" (++Output)
}
}
{ print >outfile }' infile
これにより、元のファイルがそれぞれ最大7つの分子を含む複数のファイルに分割されます(moleculesNum=7
パラメータで調整可能)。