2011-04-25 106 views
0

我需要編寫一個模仿linux命令wc的perl(包括和特別是輸出格式),在實現了功能的同時,wc的輸出真的很頭疼,看起來它正在改變所有時,以下是幾個例子(I將使用□表示空格字符)
1. wc test_input_1□□705673□□4234032□26754553□test_input_1
2. wc test_input_2□14□□79□581□test_input_2
3. wc test_input_2 -w79□test_input_2
4. wc test_input_2 -wc□79□581□test_input_2
5. cat test_input_2 | wc□□□□□14□□□□□□79□□□□□581
6. cat test_input_2 | wc -w79
□□□□□79□□□□□581linux命令wc輸出格式

的人都知道WC是如何格式化輸出?任何幫助表示讚賞,非常感謝。

+0

看起來它只是在知道它時輸出文件名。什麼是如此複雜?爲什麼你不得不模仿這個而不是'exec'ing'wc'? – drysdam 2011-04-25 12:55:12

回答

1

The Open Group specification for wc指定確切的輸出格式。格式字符串中有空格的空格數量不重要(請參閱File Format Notation)。

從歷史上看,這個數字往往被格式化佔據七列,不包括(一些歷史悠久的壞實現已經包括它們之間的空間,在七列的空間,在其中進行的輸出格式曖昧當的方式來實現字符數超過六位)。一些輸出行似乎是基於最大顯示數字中的列數進行格式化,而另一些似乎使用了七列。

+0

這有助於很多,謝謝 – user685275 2011-04-25 14:10:03

1

開始

$ info wc 

信息頁面給出了輸出格式的簡要說明。如果這樣做沒有足夠的可用性,請抓住coreutils source並閱讀wc的源代碼。

+0

感謝您的回答,我很感激。 – user685275 2011-04-25 14:11:31