From owner-freebsd-questions@FreeBSD.ORG Fri Jan 18 17:32:02 2008 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 4659F16A420 for ; Fri, 18 Jan 2008 17:32:02 +0000 (UTC) (envelope-from fbsdq@peterk.org) Received: from poshta.pknet.net (poshta.pknet.net [216.241.167.213]) by mx1.freebsd.org (Postfix) with SMTP id D1D3813C45A for ; Fri, 18 Jan 2008 17:32:01 +0000 (UTC) (envelope-from fbsdq@peterk.org) Received: (qmail 8627 invoked by uid 98); 18 Jan 2008 17:34:05 -0000 Received: from 216.241.167.213 by poshta.pknet.net (envelope-from , uid 82) with qmail-scanner-2.01 (clamdscan: 0.91.2/5145. spamassassin: 3.2.3. Clear:RC:1(216.241.167.213):. Processed in 0.054951 secs); 18 Jan 2008 17:34:05 -0000 Received: from unknown (HELO webmail.pknet.net) (216.241.167.213) by poshta.pknet.net with SMTP; 18 Jan 2008 17:34:04 -0000 Received: from 63.65.46.186 (SquirrelMail authenticated user fbsdq@peterk.org) by webmail.pknet.net with HTTP; Fri, 18 Jan 2008 10:34:05 -0700 (MST) Message-ID: <1354.63.65.46.186.1200677645.squirrel@webmail.pknet.net> Date: Fri, 18 Jan 2008 10:34:05 -0700 (MST) From: fbsdq@peterk.org To: "Paul Schmehl" User-Agent: SquirrelMail/1.4.11 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal Cc: FreeBSD Questions Subject: Re: Shell scripting kungfu 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: Fri, 18 Jan 2008 17:32:02 -0000 > I need to do the following: > > Take a list of various strings, one of which is a quoted IP address, and > extract the IPs. (Done that.) > > Then take the list of IPs and convert them to a list of IPs with masks on > a > single line. > > IOW, I have converted the original list to this: > > x.x.x.x > x.x.x.x > x.x.x.x > x.x.x.x > > Now I need to remove the newlines and add /32, to the end of each IP so > that I > have this: > x.x.x.x/32,x.x.x.x/32,x.x.x.x/32,etc. > > I got close with sed, but I'm not quite there. > > I got this: > > x.x.x.x/32,x.x.x.x > x.x.x.x/32,x.x.x.x > x.x.x.x/32,x.x.x.x > > Here's the code I used: > cat hostlist | cut -d',' -f2 | cut -d'"' -f2 | sort | uniq | grep -v > "inet" | > sed '/[^*]$/N;s/\n */\/32,/' > > What am I missing? you are missing 'tr' I guess; chernogorsk:#cat /tmp/x x.x.x.x x.x.x.x x.x.x.x x.x.x.x chernogorsk:#cat /tmp/x | sed 's/$/\/32,/g'|tr -d "\r\n" > /tmp/x2; echo >> /tmp/x2 chernogorsk:#cat /tmp/x2 x.x.x.x/32,x.x.x.x/32,x.x.x.x/32,x.x.x.x/32, some fine tunning and getting rid of the trailing ',' you can add another sed pipe, etc.etc. ]Peter[ > > > > -- > Paul Schmehl (pauls@utdallas.edu) > Senior Information Security Analyst > The University of Texas at Dallas > http://www.utdallas.edu/ir/security/ > > _______________________________________________ > freebsd-questions@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-questions > To unsubscribe, send any mail to > "freebsd-questions-unsubscribe@freebsd.org" >