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>