我的问题如下:我有一个文件格式化:
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',我尝试了下一个,休息和退出等命令,但我没有管理.谢谢你的任何提示.
不使用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)