2014-02-12 38 views
0

我試圖自動執行以下過程:插入序列號和行號爲某些線

  1. 插入在第1行(0001)
  2. 在接下來的25行的數,插入連續的行號(1-25)用兩個空間
  3. 後的行號25沿,繼續從第1行(0002)
  4. 執行再次
  5. 步驟2,這個行號25之後的下一個序號,依次繼續(0003)
  6. 執行步驟2再次
  7. 等等,將需要

含有序列號(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 

回答

1

有趣的問題,我得到了這條線,這給需要的格式輸出:

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

完美的作品。如何在行號(1-25)之後添加額外的空格?此外,有關學習更多關於'awk'的任何建議?謝謝。 – jarhead

+0

@jarhead'「%2d%s \ n」'你可以在'%2d'和'%s \ n'之間加空格 – Kent

2

AWK

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

第二印刷應也是一個printf:'awk'FNR%25 == 1 {printf「%04d \ n」,++ i; s = 1} {printf「%2d%s \ n」,s ++,$ 0}「'以正確縮進1-25行號。 – teotwaki

+0

'printf'偉大的作品 – jarhead