From owner-freebsd-questions@FreeBSD.ORG Wed Jun 16 11:40:15 2010 Return-Path: Delivered-To: questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6F7E7106567E for ; Wed, 16 Jun 2010 11:40:15 +0000 (UTC) (envelope-from m.seaman@infracaninophile.co.uk) Received: from smtp.infracaninophile.co.uk (gate6.infracaninophile.co.uk [IPv6:2001:8b0:151:1::1]) by mx1.freebsd.org (Postfix) with ESMTP id D36EC8FC17 for ; Wed, 16 Jun 2010 11:40:14 +0000 (UTC) Received: from seedling.black-earth.co.uk (seedling.black-earth.co.uk [81.187.76.163]) (authenticated bits=0) by smtp.infracaninophile.co.uk (8.14.4/8.14.4) with ESMTP id o5GBe3MB090626 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Wed, 16 Jun 2010 12:40:03 +0100 (BST) (envelope-from m.seaman@infracaninophile.co.uk) Message-ID: <4C18B813.7020608@infracaninophile.co.uk> Date: Wed, 16 Jun 2010 12:40:03 +0100 From: Matthew Seaman Organization: Infracaninophile User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4 MIME-Version: 1.0 To: Aiza References: <4C18B276.4080900@comclark.com> In-Reply-To: <4C18B276.4080900@comclark.com> X-Enigmail-Version: 1.0.1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamav-milter 0.96.1 at lucid-nonsense.infracaninophile.co.uk X-Virus-Status: Clean X-Spam-Status: No, score=1.6 required=5.0 tests=BAYES_50,DKIM_ADSP_ALL, SPF_FAIL autolearn=no version=3.3.1 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on lucid-nonsense.infracaninophile.co.uk Cc: "questions@freebsd.org" Subject: Re: .sh and sed X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Jun 2010 11:40:15 -0000 -----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@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-----