我有以下类型的文件
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行增加第六栏吗?你知道吗
如果只想增加第(33*n)行,可以这样做。你知道吗
第33行将增加1,第66行将增加2,以此类推
这可能是您想要的,但没有可测试的样本输入和预期输出,我们只是猜测:
例如:
这就足够了:
这将用基于行号的整数替换字段6。这个表情很明显。之所以有
+1
,是因为,例如,在第21行,NR/33=0.6363,int()
截断为零。你知道吗“script”末尾的尾随
1
打印该行,因为它的计算结果为“true”,在awk中,缺少的语句默认为{print}
。你知道吗请注意,在awk中,每当您更改字段数据时,awk都会重新处理该行以减少空格,用
OFS
替换所有字段分隔符。你知道吗相关问题 更多 >
编程相关推荐