Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Aug 2020 16:49:24 +0200
From:      Polytropon <freebsd@edvax.de>
To:        Robert Huff <roberthuff@rcn.com>
Cc:        Ernie Luzar <luzar722@gmail.com>, "freebsd-questions\@freebsd.org" <freebsd-questions@freebsd.org>
Subject:   Re: csh use of grep | tr  commands
Message-ID:  <20200810164924.4ec11e74.freebsd@edvax.de>
In-Reply-To: <24368.41568.96908.196223@jerusalem.litteratus.org>
References:  <5F30962B.5060005@gmail.com> <24368.41568.96908.196223@jerusalem.litteratus.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 9 Aug 2020 21:26:56 -0400, Robert Huff wrote:
> Ernie Luzar writes:
> 
> >  Double quotes are giving me trouble.
> >  
> >  I have a file with a line in it like this
> >  ip4="10.111.098.2"
> >  I want to get just the ip address
> >  
> >  ip=`grep "ip4=" directory-path/file-name
> >  
> >  $ip ends up having ip4="10.111.098.2"  in it
> >  
> >  ip=`echo -n "${ip}" | tr -d "ip4="
> >  
> >  $ip ends up having "10.111.098.2"  in it
> >  
> >  Putting | tr """ " "` after the echo above gives error.
> >  
> >  How do I remove the " around the ip address?
> 
> 	Would awk perhaps be a better tool?

Possibly. But it's more elaborate than sed. :-)

	% echo 'ip4="10.111.098.2"' | awk '/^ip4=/ { gsub("ip4=", "", $0); gsub("\"", "", $0); print $0 }'
	10.111.098.2

Compared to:

	% echo 'ip4="10.111.098.2"' | sed 's/ip4="//g; s/"//g'
	10.111.098.2

However, awk can eliminate a possible grep invocation to
only process matching lines, which might be an advantage.



-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20200810164924.4ec11e74.freebsd>