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>
