【发布时间】:2013-10-05 14:52:47
【问题描述】:
我有一个包含 20736 行的文件。每 81 行代表分子原子的坐标。所以我有 256 个分子的总坐标。 现在我想为每个分子的特定部分选择坐标。例如,在 81 行中,我只想从每个分子中选择第 44 行到第 81 行,直到所有 256 个分子。
为了解释更多细节,我想选择行
44-81 from 1-81 lines
126-163 from 82-163 lines
208-245 from 164-245 lines
290-327 from 246-327 lines
and so on until 20736 lines
为了实现这一点,我尝试了如下 bash 脚本:
#!/bin/bash
while read line
do
echo "$line"
done < malto-thermo-RT.set30.traj.pdbL1
但我不确定如何继续执行循环以从文件的每 81 行中仅选择第 44 行到第 81 行。
感谢我得到一些帮助。
如果可以的话,我也希望在 python、awk 和 perl 中获得解决方案以用于学习目的。
非常感谢。
【问题讨论】:
-
开始写Python吧,我们不是为你做的。
-
@sudo_O: 好的,我明白怎么了:第一个必须从
0开始,因为163-82=81、245-164=81也是81-0=81,而不是81-1!!!跨度> -
@vijay:您的示例行范围与您的问题不一致。如果您继续示例直到第 256 个分子,您将拥有 20954-20991 的范围,但您声称文件中只有 20736 行。
-
亲爱的@rici,你是对的。我错过了文件中每 81 行一次的行分隔符。对此深表歉意。
-
@Vijay:请更正您的帖子:不可能有
20736和256分子和81 + 1行+ sep。