.sh and sed

Matthew Seaman m.seaman at infracaninophile.co.uk
Wed Jun 16 11:40:15 UTC 2010


-----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

- -- 
Dr Matthew J Seaman MA, D.Phil.                   7 Priory Courtyard
                                                  Flat 3
PGP: http://www.infracaninophile.co.uk/pgpkey     Ramsgate
JID: matthew at infracaninophile.co.uk               Kent, CT11 9PW
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.14 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkwYuBMACgkQ8Mjk52CukIxF2QCcDqIpSGa98Wrp6dD+ii1FGJ5q
p4oAn2NJxqIksx9iS0QSzT8Ypme6wwE4
=aFrN
-----END PGP SIGNATURE-----


More information about the freebsd-questions mailing list