如何打印多个文件的每一 n 行并将其写入该第 n 行的每一组?



我想从五个名为chain*的文件中打印每108行.dat(chaina,chain,chainc,chaind和chaine。

我试过这个命令。

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

谢谢你的帮助。我对此很陌生。 如果您有手册建议我阅读,请告知。

你能不能试试下面的awk.

awk 'FNR%108==0{print FILENAME,FNR,$0}' chain*.dat | sort -ns -k2

最新更新