插入某些行的序号和行号

时间:2014-02-12 21:27:18

标签: regex bash awk terminal grep

我正在尝试自动执行以下过程:

  1. 在第1行(0001)
  2. 上插入一个数字
  3. 对于接下来的25行,插入连续行号(1-25)和两个空格
  4. 在第25行之后,继续第1行(0002)
  5. 中的下一个序号
  6. 再次执行第2步
  7. 在第25行之后,继续顺序(0003)
  8. 再次执行第2步
  9. 包含序号(0001,0002等)的行只包含数字,所以我假设需要添加回车符。

    当编号行在数字1-9之前包含空格以便它们与10-25对齐时是否也可以?

    就像......

    0001
     1  This is text
     2  Some more text
     ↓
     9  Text here
    10  Text here
     ↓
    24  Additional text
    25  And some more text
    0002
     1  Text again
     2  More text
     ↓
     9  Text here
    10  Text here
     ↓
    24  Additional text
    25  And some more text
    0003
    

2 个答案:

答案 0 :(得分:2)

使用awk

awk 'FNR%25==1{printf "%04d\n",++i;s=1}{print s++,$0}' file

答案 1 :(得分:1)

有趣的问题,我得到了这一行,它提供了所需的格式化输出:

awk '{s=(NR-1)%25}!s{printf "%04d\n", ++k}{printf "%2d %s\n",s+1,$0}' file