0
我以前问过如何使用awk来更正计数数据中的错误,其中第一列数据是用于标识正在测量的子舞台的数字,第二列列是来自该子舞台的计数数据。计数是自动化的,程序出错(下面用#表示),偶尔会有“错误计数”,因为正在计数的动物已经移动到了特定子场的范围之外。for循环在awk中比较文件中的后续行
1 0
1 2
1 6
1 7
1 7
1 8
1 7 #
1 7 #
1 9
2 0
2 0
2 1
2 4
2 3 #
2 3 #
2 4
2 4
2 6
我想以校正上述像这样:
1 0
1 2
1 6
1 7
1 7
1 8
1 8
1 8
1 9
2 0
2 0
2 1
2 4
2 4
2 4
2 4
2 4
2 6
这是麻烦建议不包括一个for循环中的数据内的校正的每个领域的代码(有20个每个文件的总数),我一直在试图弄清楚这一点,但是我有一个非常困难的时间,有时会出现语法错误,其他时候会出现非法声明错误。我会很感激任何提示,为什么以下将无法正常工作(对不起,我这样的新手,这是我已经试过多次迭代之一,他们都不是美丽的):
awk 'i=1; i<=20; i++; $1=i {NR > 1 && $2 < p {$2 = p} {p = $2} 1}' infile > outfile
它很好用!只需添加“OFS = \\ t”即可重置为制表符分隔。并特别感谢你的解释! – suegene 2012-07-31 03:43:15