Patch-ID: bash40-021
[bash.git] / examples / functions / basename2
bloba42231cf625a8c40e865e1aa5419707ecb3ddf5a
1 #From: "Grigoriy Strokin" <grg@philol.msu.ru>
2 #Newsgroups: comp.unix.shell
3 #Subject: fast basename and dirname functions for BASH/SH
4 #Date: Sat, 27 Dec 1997 21:18:40 +0300
6 #Please send your comments to grg@philol.msu.ru
8 function basename()
10   local name="${1##*/}"
11   echo "${name%$2}"
14 function dirname()
16   local dir="${1%${1##*/}}"
17   [ "${dir:=./}" != "/" ] && dir="${dir%?}"
18   echo "$dir"
21 # Two additional functions:
22 # 1) namename prints the basename without extension
23 # 2) ext prints extension of a file, including "."
25 function namename()
27   local name=${1##*/}
28   local name0="${name%.*}"
29   echo "${name0:-$name}"
31 function ext()
33   local name=${1##*/}
34   local name0="${name%.*}"
35   local ext=${name0:+${name#$name0}}
36   echo "${ext:-.}"