2012-09-11 45 views
2

我有一些問題。
我有一個大文件,提供一個錯誤與文本「這是一個錯誤」。
在源代碼中,我有很多帶有相同文本的行。 如何將所有此行更改爲計數行。
我的意思是我要改變這樣的:將數字順序添加到匹配事件

some_function() 
{ 
provide "it's an error" 
    } 
another_function() 
provide "it's an error" 
provide "it's an error" 

,現在我想未來:

some_function() 
{ 
provide "1 it's an error" 
    } 
another_function() 
provide "2 it's an error" 
provide "3 it's an error" 

還是相同的,但行號。

回答

3

加上行號:

awk '{gsub(/it.s an error/, NR" &"); print }' filename 
+0

優雅的解決方案。 – tuxuday

2

你可以做到這一點使用的Vim(如您標記後):

:let i=1 | g/\zeit's an error/s//\=i." "/g | let i=i+1 

或使用本其它方式使用錯誤行枚舉錯誤:

:%s/\zeit's an error/\=line('.')." "/g