2014-03-19 13 views
0

我做了一個小程序,將行號放在文件的每一行前面!這工作得很好,但他們只是一個問題。我得到這個的結果是:C sed在同一行上的linenumbers

文本一個

文本的兩種

文本3

但我想輸出給我如:

1 Text one 
2 Text two 
3 Text three 

我使用此代碼來執行sed的功能:

char* exec[] = { "sed", "/./=", NULL }; 
execvp(exec[0], exec); 

我想我需要改變執行[],但我不以什麼方式知道了!

非常感謝:d

+0

他們看起來一樣(你得到了什麼,你說什麼你想要的) – GreenAsJade

+1

兩個問題:1)如果你使用sed,爲什麼在C? 2)如果你應該用C編寫它,爲什麼使用sed? –

+2

μ(https://en.wikipedia.org/wiki/Mu_(negative)#.22Unasking.22_the_question)。你爲什麼要編寫一個C程序來產生'sed'?爲什麼不使用[getline](http://man7.org/linux/man-pages/man3/getline.3.html)從C程序中打印行數?如果你必須使用外部程序,爲什麼'sed'?爲什麼不用'cat'打印行號的'-n'選項? –

回答

0
sed 'N;N;N;s/\n//g;s/[0-9]*/& /' YourFile 

刪除\ n(每實線4線的結構的基礎上,再經過第一個數字

添加一個空格,但爲什麼用sed來解構這可能是(cat -n,grep -n,...)?