Вот сценарий Perl,paradj
который может выполнить полное выравнивание и перенос слов.
Вот diff
некоторые изменения, которые я сделал для поддержки добавления левого поля:
12c12 < my ($indent, $newline); --- > my ($indent, $margin, $newline); 15a16 > "margin:i" => \$margin, 21a23 > $margin = 0 if (!$margin); 149a152 > print " " x $margin; 187a191,193 > print "--margin=n (or -m=n or -m n) Add a left margin of n "; > print "spaces\n"; > print " (defaults to 0)\n";
Эта команда:
./paradj.pl -h --width=53 --both --indent=0 inputfile
производит вывод очень близко к вашему примеру (лишние пробелы находятся в разных местах).
These phantasmic balls have some strange properties, some neat, some interesting, and others just indica- tive of lazy design. They're almost all caused by the same design flaw: The game treats them too much like regular balls.