比较 awk 中的连续行



我想使用 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; }'

相关内容

  • 没有找到相关文章

最新更新