On Tue, 1 Sep 2009, Steve Bertrand wrote:
George Davidovich wrote:
On Tue, Sep 01, 2009 at 06:03:19PM +0000, Paul Schmehl wrote:
I found a sed tutorial once that did this, but I can't seem to find it
again.

You're probably thinking of "Useful One-Line Scripts for Sed":

http://sed.sourceforge.net/sed1line.txt

A good follow-up:

http://www.osnews.com/story/21004/Awk_and_Sed_One-Liners_Explained

I have a file with multiple lines, each of which contains a single ip
followed by a /32 and a comma.  I want to combine all those lines into
a single line by removing all the newline characters at the end of
each line.

What's the best/most efficient way of doing that in a shell?

A sed solution would be

  sed -e :a -e '$!N; s/\n/ /; ta' my_file

Other (easier to remember) solutions could include:

  tr -d '\n' < my_file
  tr '\n' ' ' < my_file

  echo $(cat my_file)  # not so useless use of cat!

  paste -s my_file

  while read line; do
    joined="$joined $(echo $line)"
  done < my_file
  echo $joined

Lots of options, of course.  Even more with Perl.

Yeah, how 'bout Perl:

% perl -ne 's/\n/ /g; print;' < tests/ips.txt

perl -pe 'chomp' myfile

is somewhat easier.  Works with Ruby, too.

-Warren Block * Rapid City, South Dakota USA
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[email protected]"

Reply via email to