On Mon, 31 Mar 2008 18:10:51 +0300 Peter Pentchev <[EMAIL PROTECTED]> wrote: 

PP> On Mon, Mar 31, 2008 at 09:26:28AM -0500, Ted Zlatanov wrote:
>> On Sat, 29 Mar 2008 22:14:28 +0200 Александър Шопов <[EMAIL PROTECTED]> 
>> wrote: 
>> 
АШ> В смисъл - това зависи от конкретния терминал (включително и хардуерно
АШ> устройство) или има променлива на средата, която влияе?
АШ> Знаеш ли за пример на терминална програма, която извежда табулацията
АШ> например като четири шпации?
>> 
>> perl -p -e 's/\t/   /g' < FILE
>> 
>> Така си сигурен че терминала няма да се меси.

PP> Ъъъъъъ... с цялото ми уважение, това не помага изобщо :)
...
PP> А за истинския въпрос: аз лично за такива неща обикновено ползвам хубавата
PP> стара Unix-ка програма pr(1), особено с параметри -t и -e8 или -e4 или
PP> колкото искам да й кажа :)  Шопов, пробвай с "pr -t -e4 foo.txt"; ако не
PP> стане точно каквото искаш, поиграй си с другите опции на pr(1).

Извинявайте, сбърках.  Ето нещо по-правилно, подобно на `pr' (за чийте
опций аз не знаех, и която явно е по-добрият избор).

Тео

#!/usr/bin/perl

use warnings;
use strict;

my $tabw = 4;

while (<>)
{
 my @chars = split //;
 my $pos = 0;
 foreach my $char (@chars)
 {
  if ($char eq "\t")
  {
   # move to the next position until it's a multiple of $tabw
   do
   {
    print ' ';
   } while (++$pos % $tabw);
  }
  else
  {
   print $char;
   $pos++;
  }
 }
}
_______________________________________________
Lug-bg mailing list
[email protected]
http://linux-bulgaria.org/mailman/listinfo/lug-bg

Reply via email to