我想使用 awk 命令比较文件中的连续行。下面是输入和输出的示例。
输入文件
6
7
8
9
10
4
5
6
我想要的输出文件是这样的:
6
7
8
9
10
14
15
16
基本上,我想比较当前行是否大于前一行,并继续打印前一行和当前行。只要当前行小于前一行,就向后续的每一行添加一个值 (10)。
根据
评论中的要求进行了更新:
awk '{if ($1<prev) {offset++}; print ($1+(offset*10)); prev=$1}' input_file
现在,每次连续行之间的数字从较大的数字变为较小的数字时,增量偏移量都会增加 10。
awk '$0<p{$0+=10} {p=$0} 1' file
您必须将先前的值保存在变量中并与之进行比较:
awk '{ if ($0 < old) { $0 += 10; } print; old = $0; }'