【发布时间】:2012-07-31 03:21:48
【问题描述】:
我之前问过如何使用 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
【问题讨论】: