How do you sort a text file?

Discussion in 'Ruby' started by Danny Abc, Jan 5, 2006.

  1. Danny Abc

    Danny Abc Guest

    I'm new to Ruby and was wondering how to sort a text file?

    With UNIX scripts, I just use "cat input.txt | sort > output.txt".


    --
    Posted via http://www.ruby-forum.com/.
    Danny Abc, Jan 5, 2006
    #1
    1. Advertising

  2. Danny Abc

    Guest

    On Fri, 6 Jan 2006, Danny Abc wrote:

    > I'm new to Ruby and was wondering how to sort a text file?
    >
    > With UNIX scripts, I just use "cat input.txt | sort > output.txt".



    open("output.txt"){|f| f.write IO::readlines("input.txt").sort}

    -a
    --
    ===============================================================================
    | ara [dot] t [dot] howard [at] noaa [dot] gov
    | all happiness comes from the desire for others to be happy. all misery
    | comes from the desire for oneself to be happy.
    | -- bodhicaryavatara
    ===============================================================================
    , Jan 5, 2006
    #2
    1. Advertising

  3. Danny Abc

    Ross Bamford Guest

    On Thu, 05 Jan 2006 21:28:08 -0000, <> wrote:

    > On Fri, 6 Jan 2006, Danny Abc wrote:
    >
    >> I'm new to Ruby and was wondering how to sort a text file?
    >>
    >> With UNIX scripts, I just use "cat input.txt | sort > output.txt".

    >
    >
    > open("output.txt"){|f| f.write IO::readlines("input.txt").sort}
    >
    > -a


    Alternatively, sticking with the command-line thing, how about:

    cat input.txt | ruby -e 'puts $stdin.sort' > output.txt

    --
    Ross Bamford -
    Ross Bamford, Jan 5, 2006
    #3
  4. Danny Abc wrote:
    > I'm new to Ruby and was wondering how to sort a text file?
    >
    > With UNIX scripts, I just use "cat input.txt | sort > output.txt".



    ruby -e 'puts ARGF.sort' input1.txt input2.txt input3.txt
    William James, Jan 6, 2006
    #4
  5. Danny Abc wrote:
    > I'm new to Ruby and was wondering how to sort a text file?
    >
    > With UNIX scripts, I just use "cat input.txt | sort > output.txt".


    You are entitled to the "useless cat award". :) Any reason why you don't
    just do
    "sort input.txt > output.txt"?

    robert
    Robert Klemme, Jan 6, 2006
    #5
  6. Danny Abc

    Hal Fulton Guest

    Robert Klemme wrote:
    > Danny Abc wrote:
    >
    >>I'm new to Ruby and was wondering how to sort a text file?
    >>
    >>With UNIX scripts, I just use "cat input.txt | sort > output.txt".

    >
    >
    > You are entitled to the "useless cat award". :)


    My neighbor's cat won that already.

    > Any reason why you don't
    > just do
    > "sort input.txt > output.txt"?


    Regarding his original question, I think if he has large files to
    sort, he might be well off just using the Unix sort utility. If he
    has complex logic, of course, he can still control it all in Ruby.

    I haven't tested it, but I can't help expecting that on a large
    file, system("sort...") would be the efficient way.


    Hal
    Hal Fulton, Jan 6, 2006
    #6
  7. Hal Fulton wrote:
    > Robert Klemme wrote:
    >> Danny Abc wrote:
    >>
    >>> I'm new to Ruby and was wondering how to sort a text file?
    >>>
    >>> With UNIX scripts, I just use "cat input.txt | sort > output.txt".

    >>
    >>
    >> You are entitled to the "useless cat award". :)

    >
    > My neighbor's cat won that already.


    Oh, on what basis? Does it catch no mice?

    > > Any reason why you don't
    >> just do
    >> "sort input.txt > output.txt"?

    >
    > Regarding his original question, I think if he has large files to
    > sort, he might be well off just using the Unix sort utility. If he
    > has complex logic, of course, he can still control it all in Ruby.


    +1

    > I haven't tested it, but I can't help expecting that on a large
    > file, system("sort...") would be the efficient way.


    +1

    robert
    Robert Klemme, Jan 6, 2006
    #7
  8. Michal Suchanek wrote:
    > On 1/6/06, Robert Klemme <> wrote:
    >> Danny Abc wrote:
    >>> I'm new to Ruby and was wondering how to sort a text file?
    >>>
    >>> With UNIX scripts, I just use "cat input.txt | sort > output.txt".

    >>
    >> You are entitled to the "useless cat award". :) Any reason why you
    >> don't just do
    >> "sort input.txt > output.txt"?

    >
    > Well, cat does not write its arguments so you are pretty sure it is
    > the input argument whatever command you put next in the pipeline.


    I'm sorry, what do you mean by that? Do you mean to say that cat only
    reads and so there is no danger of overwriting a file? Unix command line
    tools that acutally write to a file named on the command line are rather
    seldom; there are quite a few that use an option for that. Never occurred
    to me that this extra level of security was needed.

    > Plus there was a shell once where input redirection did not work and
    > one replaced it with cat and |. At least that is how I learned to use
    > useless cats extensively.


    You don't need a shell without redirection - sort sorts the files named on
    its command line. I doubt it ever behaved differently.

    > Anyway, cats are nice :)


    Certainly! See http://www.flickr.com/photos/99776024@N00/sets/1697461/

    Kind regards

    robert
    Robert Klemme, Jan 6, 2006
    #8
  9. J. Ryan Sobol, Jan 6, 2006
    #9
  10. Robert Klemme, Jan 6, 2006
    #10
  11. Re: [OT] cats

    Has the venerable tradition of Friday cat blogging made its way into
    ruby-talk? ;)


    Robert Klemme wrote:
    > J. Ryan Sobol wrote:
    >
    >>http://catsinsinks.com/

    >
    >
    > Uh, oh, need to upload a picture of our "Tyron in the Sink". :)
    >
    > robert
    >
    >
    >
    >>~ ryan ~
    >>
    >>
    >>On Jan 6, 2006, at 8:52 AM, Robert Klemme wrote:
    >>
    >>
    >>>>Anyway, cats are nice :)
    >>>
    >>>Certainly! See http://www.flickr.com/photos/99776024@N00/sets/
    >>>1697461/



    --
    vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407
    Joel VanderWerf, Jan 6, 2006
    #11
  12. Danny Abc

    Andreas Eder Guest

    >>>>> "Danny" == Danny Abc <> writes:

    Danny> I'm new to Ruby and was wondering how to sort a text file?
    Danny> With UNIX scripts, I just use "cat input.txt | sort > output.txt".

    Why not sort <input.txt >output.txt?
    That cat is totally superfluous.

    'Andreas

    --
    Wherever I lay my .emacs, there's my $HOME.
    Andreas Eder, Jan 7, 2006
    #12
  13. Danny Abc

    Jim Guest

    Danny Abc wrote:
    > I'm new to Ruby and was wondering how to sort a text file?
    >
    > With UNIX scripts, I just use "cat input.txt | sort > output.txt".
    >
    >
    > --
    > Posted via http://www.ruby-forum.com/.


    Why can't I just let these things go?

    i use:

    $ sort -o outfile.txt infile.txt

    No pipes, and you can use the same file name if you don't want to keep
    both files.
    Jim, Jan 7, 2006
    #13
  14. Danny Abc

    Chad Perrin Guest

    On Sat, Jan 07, 2006 at 11:23:00PM +0900, Andreas Eder wrote:
    > >>>>> "Danny" == Danny Abc <> writes:

    >
    > Danny> I'm new to Ruby and was wondering how to sort a text file?
    > Danny> With UNIX scripts, I just use "cat input.txt | sort > output.txt".
    >
    > Why not sort <input.txt >output.txt?
    > That cat is totally superfluous.


    You don't need that input redirect. Input takes a filename as an
    argument, so you can simply do this:
    sort input.txt > output.txt

    --
    Chad Perrin [ CCD CopyWrite | http://ccd.apotheon.org ]

    "Real ugliness is not harsh-looking syntax, but having to
    build programs out of the wrong concepts." - Paul Graham
    Chad Perrin, Jan 7, 2006
    #14
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.

Share This Page