Hey, that's mine!
The Korn and Bourne Again shells (ksh and bash) have builtin mechanisms for filtering your data from a variable.
The following is taken directly from the book "
Learning the Korn Shell" (ISBN 1-56592-054-6):
Code:
Assume that the variable path has the value /home/billr/mem/long.file.name, then:
Expression Result
${path##/*/} long.file.name
${path#/*/} billr/mem/long.file.name
$path /home/billr/mem/long.file.name
${path%.*} /home/billr/mem/long.file
${path%%.*} /home/billr/mem/long
Keep in mind that this doesn't match regular expressions; the ".*" really matches a "." and then more, not just any character.
It's good for speed, instead of calling
basename $path, or saying something like
echo $path | sed 's/.*\///g'.
Try using
time to figure out how much faster it is to do it that way...
Hope this helps.