停止awk将变量与下一个记录进行比较

Mir*_*rrG 2 bash awk

我的问题如下:我有一个文件格式化:

1 apple
3 pear
7 lemon
Run Code Online (Sandbox Code Playgroud)

我想要做的是在行上添加空行,这些行不等于第一列中的值,以便它在输出中相等:

1 apple

3 pear



7 lemon
Run Code Online (Sandbox Code Playgroud)

我尝试用awk做这个: awk '{for (i=1; i<=10; i++) { if (i==$1) {print $0} else {printf ("\n")}}}' file 但是,当然,它会将每个i行与文件中的所有行进行比较,而我想在动作完成后立即停止它,但保持循环的i值越来越大.我点了'awk manual',我尝试了下一个,休息退出等命令,但我没有管理.谢谢你的任何提示.

Aks*_*gde 5

不使用Array,实际上零内存开销

输入

[akshay@gold tmp]$ cat f
1 apple
3 pear
7 lemon
Run Code Online (Sandbox Code Playgroud)

产量

[akshay@gold tmp]$ awk '{while(++c < $1)print ""}1' f
1 apple

3 pear



7 lemon
Run Code Online (Sandbox Code Playgroud)

随着数字

[akshay@gold tmp]$ awk '{while(++c < $1)print c}1' f
1 apple
2
3 pear
4
5
6
7 lemon
Run Code Online (Sandbox Code Playgroud)