Need help with sed statement
Chris Tyler
chris at tylers.info
Tue May 4 03:46:40 UTC 2010
On Mon, 2010-05-03 at 21:37 -0600, David Bartmess wrote:
> Not sure if this is the right place, but I need help with a sed
> replacement expression.
>
> I'm trying to express only the filename from a filepath, i.e.,
> whoopie.txt from /opt/dev/whoopie.txt.
>
> Basically I'm reading the files that changed into a temp file, and
> reading each line into a variable to split out the base filename to act
> upon.
>
> I tried using the following, but it still gives me the entire string:
>
> #!/bin/bash
> BASEDIR="/opt/dev";
> echo $BASEDIR | sed "s/$BASEDIR\///"
>
> This gives me back the entire original string.
>
> And I also tried the following sed statement:
>
> echo $BASEDIR | sed "s/^.*\([^/]+\)$/\1/"
> This gives me back nothing at all
>
> Thanks for any help!
I think you want the 'basename' command:
PATHNAME=/var/log/messages
basename $PATHNAME
Alternately, using sed, something like:
PATHNAME=/var/log/messages
echo $PATHNAME|sed "s|^.*/||"
Both of these output "messages".
-Chris
More information about the users
mailing list