next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Modificación en múltiples ficheros Sup: Expresiones Regulares Ant: Anidamiento de /e Err: Si hallas una errata ...

Expandiendo y comprimiendo tabs

Este programa convierte los tabs en el número apropiado de blancos.
   1 #!/usr/bin/perl -w
   2 undef($/);
   3 $string = <>;
   4 $width=2;
   5 while ($string =~ s/\t+/' 'x(length($&)*$width-length($`)%$width)/e) {
   6 }
   7 print "$string";
Supuesto que los tabs se paran cada tpw = 8 posiciones se convierte a espacios calculando el correspondiente múltiplo de $tpw a partir de la posición actual. La función length devuelve la longitud en caracteres de la expresión que se le pasa como argumento. Si se omite la expresión usará la variable $_.

Sigue un ejemplo de ejecución:

> cat -t tabs.in
one^Itwo^I^Ithrei^I^I^I
four^I^I^I^Ifive^I^I^I^I^I
end
> tabs.pl tabs.in | cat -t
one     two             threi
four                           five
end


next up previous contents index practicapracticaPP2moodleLHPmoodlepserratacpanmodulospauseperlgoogleetsiiullpcgull
Sig: Modificación en múltiples ficheros Sup: Expresiones Regulares Ant: Anidamiento de /e Err: Si hallas una errata ...
Casiano Rodríguez León
2006-02-21