On 6/19/07, Robert Klemme <shortcutter / googlemail.com> wrote:
> On 19.06.2007 02:53, Just Another Victim of the Ambient Morality wrote:
> >     I have some funky Python code that I'm trying to modify but it's
> > formatted with spaces instead of tabs, making it impossible to change.  Now,
> > there may be many different ways to solve this problem but the first impulse
> > I had was to write a small Ruby script to reformat the code.
> >     Now, a certain pattern came up in my solution that I have seen before.
> > I wanted to do something like this:
> >
> > num_tabs = num_spaces / tab_width
> > tabs = num_tabs.collect { "\t" }.join
> >
> >     ...but I discovered that there is not collect method in the integer
> > object.  The best I could come up with was:
> >
> > tabs = ''
> > num_tabs.times { tabs << "\t" }
> >
> >     Is there a more succinct, more Ruby-esque way to do this?
> >     Thank you...
>
> $ expand --help
> Usage: expand [OPTION]... [FILE]...
> Convert tabs in each FILE to spaces, writing to standard output.
> With no FILE, or when FILE is -, read standard input.
>
> Mandatory arguments to long options are mandatory for short options too.
>    -i, --initial       do not convert tabs after non blanks
>    -t, --tabs=NUMBER   have tabs NUMBER characters apart, not 8
>    -t, --tabs=LIST     use comma separated list of explicit tab positions
>        --help     display this help and exit
>        --version  output version information and exit
>
> Report bugs to <bug-coreutils / gnu.org>.
>
> :-)

Maybe this one would be better:

unexpand --help
Usage: unexpand [OPTION]... [FILE]...
Convert blanks in each FILE to tabs, writing to standard output.
With no FILE, or when FILE is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all        convert all blanks, instead of just initial blanks
      --first-only convert only leading sequences of blanks (overrides -a)
  -t, --tabs=N     have tabs N characters apart instead of 8 (enables -a)
  -t, --tabs=LIST  use comma separated LIST of tab positions (enables -a)
      --help     display this help and exit
      --version  output version information and exit

Report bugs to <bug-coreutils / gnu.org>.

:)