From owner-freebsd-questions@FreeBSD.ORG Wed Sep 2 00:20:58 2009 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6133A10656BD for ; Wed, 2 Sep 2009 00:20:58 +0000 (UTC) (envelope-from wblock@wonkity.com) Received: from wonkity.com (wonkity.com [67.158.26.137]) by mx1.freebsd.org (Postfix) with ESMTP id 103008FC08 for ; Wed, 2 Sep 2009 00:20:57 +0000 (UTC) Received: from wonkity.com (localhost [127.0.0.1]) by wonkity.com (8.14.3/8.14.3) with ESMTP id n820Kul6007746; Tue, 1 Sep 2009 18:20:56 -0600 (MDT) (envelope-from wblock@wonkity.com) Received: from localhost (wblock@localhost) by wonkity.com (8.14.3/8.14.3/Submit) with ESMTP id n820Ku8l007743; Tue, 1 Sep 2009 18:20:56 -0600 (MDT) (envelope-from wblock@wonkity.com) Date: Tue, 1 Sep 2009 18:20:56 -0600 (MDT) From: Warren Block To: Steve Bertrand In-Reply-To: <4A9DA1AB.8020102@ibctech.ca> Message-ID: References: <20090901205201.GA6126@marvin.optimis.net> <4A9DA1AB.8020102@ibctech.ca> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; format=flowed Content-ID: X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.2 (wonkity.com [127.0.0.1]); Tue, 01 Sep 2009 18:20:57 -0600 (MDT) Cc: George Davidovich , freebsd-questions@freebsd.org Subject: Re: remove newlines from a file X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Sep 2009 00:20:58 -0000 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