如何在由空行分隔的文件中重复行号

时间:2015-08-29 07:49:31

标签: line-numbers

我希望在我的文件中有空行的地方重新开始计数。

我的文件是这样的: cat test.txt

333 | 111 | 222 | 333 | 222 | 111 | 333 | 222 |

我正在使用cat test.txt | sed' s / | / \ n / g' | NL 输出: 1 333 2 111 3 222 4 333

5 222 6 111 7 333

我想要的是,在空行之后,计数再次从1开始。 期望的输出: 1 333 2 111 3 222 4 333

1 222 2 111 3 333

请帮帮忙?

1 个答案:

答案 0 :(得分:0)

这项任务在“awk”中非常微不足道,或其中一个克隆gawk,nawk。

使用内容:

创建脚本linerecount.awk
/^$/ { lineno=0; next}
     { print ++lineno, $0}

第一行明显重置亚麻并跳到下一行。 第二行增加亚麻,打印,打印线。

将gawk -f linerecount.awk应用于您想要的任何内容。

输入:

$ cat input.txt
First line
Second line
Third line

Second part, First line
Second line
Third line

Final part, First line
Second line

输出:

$ gawk -f linerecount.awk < input.txt
1 First line
2 Second line
3 Third line
1 Second part, First line
2 Second line
3 Third line
1 Final part, First line
2 Second line