Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 16 Jun 2010 21:44:18 +0800
From:      Aiza <aiza21@comclark.com>
To:        Matthew Seaman <m.seaman@infracaninophile.co.uk>
Cc:        "questions@freebsd.org" <questions@freebsd.org>
Subject:   Re: .sh and sed
Message-ID:  <4C18D532.6090306@comclark.com>
In-Reply-To: <4C18B813.7020608@infracaninophile.co.uk>
References:  <4C18B276.4080900@comclark.com> <4C18B813.7020608@infracaninophile.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
Matthew Seaman wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> On 16/06/2010 12:16:06, Aiza wrote:
>> Trying to use sed to remove the path from the file name.
>> Variable has complete path plus the file name
>> /usr/local/etc/filename
>> Need variable containing only the file name.
>> Is the sed utility the best thing to use?
>> Is there some other utility better suited for this task.
>> How would sed by coded to do this?
> 
> sh(1) can do this alone, without recourse to any external programs.
> 
> path='/usr/local/etc/filename'
> fname=${path##*/}
> echo $fname
> 
> There is also an external program basename(1)
> 
> The same trick with sed(1):
> 
> fname=$( echo $path | sed -e 's,^.*/,,' )
> 
> but the built-in prefix matching stuff is preferable since it is more
> efficient.
> 
> 	Cheers,
> 
> 	Matthew
> 
> - -- 

Thanks for your help.

The fname=${path##*/} solution worked for.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4C18D532.6090306>