[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: howto join lines



On Thu, 2008-10-02 at 09:37 +1000, Norman Gaywood wrote:
> On Wed, Oct 01, 2008 at 03:55:08PM -0400, Chris Tyler wrote:
> > On Wed, 2008-10-01 at 14:40 -0500, Les Mikesell wrote:
> > > Patrick O'Callaghan wrote:
> > > >
> > > >>>> i want to have those lines joined to one line with
> > > >>> spaces
> > > >>>> Before :
> > > >>>>
> > > >>>> textone
> > > >>>> texttwo
> > > >>>> something
> > > >>>>
> > > >>>> After :
> > > >>>>
> > > >>>> textone texttwo something
> > > >>>>
> > > 
> > > echo `cat multi_line_file`
> > > or
> > > echo $(cat multi_line_file`)
> > 
> > Or to avoid the fork & exec:
> > 
> >     echo $(<multi_line_file)
> 
> But you will end up with problems with the number of arguments on a
> command line if multi_line_file is too large.
> 
> How about:
> 
> cat multi_line_file | xargs
> 
> Note that the default command for xargs is echo
> 
> Or, to avoid a "useless use of cat" award (see
> http://partmaps.org/era/unix/award.html):
> 
> xargs < multi_line_file

Alas, that doesn't solve the problem with the excessive number/length of
arguments either, because xargs will execute the echo multiple times if
necessary to keep within the arg limits, potentially generating newlines
in the output.

...Which is why I like the translate I proposed earlier:

   tr "\012" " " <multi_line_file

--
Chris


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]