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 -- users mailing list users@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe or change subscription options: https://admin.fedoraproject.org/mailman/listinfo/users Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines