Re: [Lug-bg] Извеждане на табулации
- Subject: Re: [Lug-bg] Извеждане на табулации
- From: Ted Zlatanov <tzz@xxxxxxxxxxxx>
- Date: Mon, 31 Mar 2008 11:05:06 -0500
- Organization: Теодор Златанов @ Cienfuegos
On Mon, 31 Mar 2008 18:10:51 +0300 Peter Pentchev <roam@xxxxxxxxxxx> wrote:
PP> On Mon, Mar 31, 2008 at 09:26:28AM -0500, Ted Zlatanov wrote:
>> On Sat, 29 Mar 2008 22:14:28 +0200 Александър Шопов <ash@xxxxxxxxxx> 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
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg
|