2011-04-25 172 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