Отправка вывода в формате Perl меньше - PullRequest
2 голосов
/ 29 марта 2012

Я определил формат, подобный следующему:

# 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
.

Когда я вызываю команду write, все прекрасно работает, когда я печатаю в STDOUT, но я обрабатываю много данных, и для их отображения требуется больше, чем страница;идеальный способ для меня или кого-то еще изучить это было бы с меньшими затратами.Когда я перенаправляю вывод моей программы в less, символ ^L печатается перед заголовком на каждой новой странице вывода.

снимок экрана: output of my program piped to less

Есть ли способ обойти это?Потому что, если этот символ будет напечатан, мой заголовок будет выровнен с моими данными.

Буду признателен за любую помощь.

1 Ответ

5 голосов
/ 29 марта 2012

Это подача ASCII. Возможно, он печатается в обоих случаях, но less на самом деле отображает . Согласно perlform и perlvar , perl выводит содержимое $^L (или $FORMAT_FORMFEED при use English). Попробуйте установить для этой переменной пустую строку или символ новой строки.

...