我想从名为chain * .dat(chaina,chain,chainc,chaind和chaine。)的五个文件中打印每108行。
我试过这个命令。
awk 'FNR%108==1 {print FILENAME,$0}' chain*.dat > frame1.pdb
在我尝试这个之后,它没有从不同的文件中打印第108行作为与第216,324 ......行分开的一组。但是,它会将每个文件的第108个,第216个,第324个......打印为一组,并继续使用另一个文件。
chaina.dat #Frame
chaina.dat 108 -18.2676 -4.1726 12.7671
chaina.dat 216 -18.1870 -4.1540 12.7068
chaina.dat 324 -18.8576 -3.7915 13.0166
chaina.dat 432 -18.8460 -3.9601 12.2811
chaina.dat 540 -19.6739 -3.5707 11.5205
chaina.dat 648 -19.6330 -2.2099 11.5793
chaina.dat 756 -18.9687 -1.8901 13.0677
chaina.dat ... ........ ....... .......
chainb.dat #Frame
chainb.dat 108 -8.0205 -20.6024 -6.0144
chainb.dat 216 -7.9829 -20.5061 -5.9884
chainb.dat 324 -8.5538 -20.9686 -6.0676
chainb.dat 432 -9.5947 -20.4246 -7.1129
chainb.dat 540 -9.2219 -20.5374 -8.1963
chainb.dat 648 -9.6236 -20.2414 -6.8494
chainb.dat 756 -8.9011 -20.3855 -5.0769
chainb.dat ... ........ ....... .......
我想要的是像这样打印
chaina.dat 108 -18.2676 -4.1726 12.7671
chainb.dat 108 -8.0205 -20.6024 -6.0144
chaina.dat 216 -18.1870 -4.1540 12.7068
chainb.dat 216 -7.9829 -20.5061 -5.9884
感谢您的帮助。我对此很陌生。 如果您有手册建议我阅读,请告诉我。
答案 0 :(得分:1)
您可以尝试关注awk
。
awk 'FNR%108==0{print FILENAME,FNR,$0}' chain*.dat | sort -ns -k2