【发布时间】:2015-08-10 18:15:37
【问题描述】:
我有以下类型的文件,
ATOM 4 C4 UNK X 1 7.747 4.310 5.563 1.00 0.00 C
ATOM 5 C5 UNK X 1 8.900 3.705 6.021 1.00 0.00 C
ATOM 6 C6 UNK X 1 9.622 2.872 5.185 1.00 0.00 C
-- 最多 3564 行。
我想每 33 行将第六列增加 1。我看过之前的帖子,找到了这段代码,
gawk -v n=1 '
match($0,/^(.{22})....(.*)/, f) {printf "%s%4d%s\n", f[1], n, f[2]}
NR % 20 == 0 {n++}
{print}
' file
上述文件的输出是:
ATOM 3556 H10 UNK X 178 30.121 19.518 46.272 1.00 0.00 H
ATOM 3556 H10 UNK X 1 30.121 19.518 46.272 1.00 0.00 H
能否建议我,如何每 33 行增加第六列?
【问题讨论】:
-
您包含的代码似乎与您要执行的操作无关!此外,看起来输入和输出并没有真正匹配。
-
请edit您的问题,以便输入和输出匹配。您可能只需要一个非常简单的 awk 命令,但在您把问题弄得更清楚之前,我们不可能知道。无论如何,你坚持哪一部分?
-
不是发布 3 行输入,而是告诉我们您希望每 33 行递增一次并且不显示任何预期的输出 - 显示,比如说,10 行输入并询问我们如何每 3 行递增一次,显示所需的输出。