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
Casiano Rodríguez León