将Perl格式化输出发送到更少

时间:2012-03-29 05:14:26

标签: perl format less

我已经定义了这样的格式:

# header format
format STDOUT_TOP = 
pid    ppid   start_addr   uid   gid   state     vsz   rss     name 
--------------------------------------------------------------------------
.

# data format
format STDOUT = 
@>>>  @>>>   @>>>>>>>>>>  @>>>  @>>>  @>>>    @>>>>>  @>>>  @<<<<<<<<<<<<<<<<<<<
$pid, $ppid, $h_next,     $uid, $gid, $state, $vm,    $rss, $name
.

当我打电话给写字时,当我打印到STDOUT时,一切都很好,但我正在处理大量数据,而且显示的页面要多于页面;我或其他人检查它的理想方式是少花钱。当我将程序的输出传递给less时,在每个新输出页面的标题之前打印^L个字符。

截图: output of my program piped to less

有什么方法可以解决这个问题吗?因为如果打印出该字符,那么我的标题与我的数据不对齐。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:5)

这是一个ASCII换页。它可能在两种情况下都被打印,但less实际上显示它。根据{{​​3}}和perlform,perl正在输出$^L$FORMAT_FORMFEED下的use English)的内容。尝试将该var设置为空字符串或换行符。