【问题标题】:How can I print every nth line from multiple file and write it as each set of that nth line?如何从多个文件中打印每第 n 行并将其写入第 n 行的每一组?
【发布时间】:2018-11-13 13:59:52
【问题描述】:

我想从五个名为 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

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

【问题讨论】:

  • 您已经很接近了,您可以将awk 的输出通过管道传输到sort 命令,如我的帖子中所示。

标签: linux macos awk sed


【解决方案1】:

请您尝试关注awk

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

【讨论】:

  • @PhakawatChusuth,很酷,请检查此链接一次 stackoverflow.com/help/someone-answers 一旦有人回答我们的问题,我们应该做什么。
  • @EdMorton,^_^ 旧习惯现在改变了,先生,谢谢。
  • 您可能需要添加-s 进行排序,因为如果默认未启用稳定排序,文件名可能会随机排列。
  • @karakfa,很酷,我现在将其编辑为 -ns,如果有任何改进,请告诉我。
  • @RavinderSingh13 很抱歉迟到了投票并接受了这个答案。我对这个社区很陌生。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-03-06
  • 2019-06-30
  • 1970-01-01
  • 2022-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多