21.sed提取最后一个目录名和程序名
例如从../../etc/passwd或者/etc/passwd得到passwd
方法一:使用临时文件
#得到当前路径,输出到a文件
pwd >a
#读取a文件,过滤首字母/和尾字母/,将结果输出到b文件
sed's/^\///g' a | sed ‘s/\/$//g’ >b
while fgrep \/ b
do
#读取b文件,过滤首字符串xxxx/,将结果输出到a文件
sed's/^[a-zA-Z0-9]*\///g' b >a
#将a文件拷贝到b文件
cp -f a b
done
rm –f a
rm –f b
方法二:使用变量(优于文件形式)
c_path=`pwd`
#过滤首字母/和尾字母/
c_path=`echo $c_path | sed 's/^\///g' | sed ‘s/\/$//g’ `
while [ `echo$c_path | grep -c '\/'` -gt 0 ]
do
c_path=`echo $c_path | sed 's/^[a-zA-Z0-9_.]*\///g'`
done
echo$cur_path
方法三:使用basename命令
c_path=`pwd`
c_path=`basename $c_path`
注:参数扩展见五.5