首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

shell字符处理解决办法

2013-01-25 
shell字符处理比如有路径 /home/hello/ ,我想处理成 /home/hello ,sed中有什么方法呢,shell中有没有类似en

shell字符处理
比如有路径 /home/hello/ ,我想处理成 /home/hello ,sed中有什么方法呢,shell中有没有类似endwith("/")之类的函数或者数组下标移动的函数可用呢?
[解决办法]
echo "/home/hello/" 
[解决办法]
 sed -e 's:/$::'
[解决办法]
shell可以结合awk进行substr,按照lz的要求,只是需要删除最后一个字符“/”
如:
#dir=/home/hello/
#subdir=`echo $dir 
[解决办法]
 awk '{print substr($1,1,length($1)-1)}'`
#echo ${subdir}
/home/hello

如果要做的扩展性好点,就在前天加上判断,如:

dir=/home/hello/   #这里的dir可以使用外面传入的参数值
flag=`echo $dir 
[解决办法]
 awk '{print substr($1,length($1),1)}'`
if [ "$flag" = "/" ]
then
subdir=`echo $dir 
[解决办法]
 awk '{print substr($1,1,length($1)-1)}'`
else
subdir=$dir
fi

echo $subdir

执行结果:
#dir=/home/hello
#flag=`echo $dir 
[解决办法]
 awk '{print substr($1,length($1),1)}'`
#if [ "$flag" = "/" ]
> then
> subdir=`echo $dir 
[解决办法]
 awk '{print substr($1,1,length($1)-1)}'`
> else
> subdir=$dir
> fi
#echo $subdir
/home/hello

----------
#dir=/home/hello
#flag=`echo $dir 
[解决办法]
 awk '{print substr($1,length($1),1)}'`
#if [ "$flag" = "/" ]
> then
> subdir=`echo $dir 
[解决办法]
 awk '{print substr($1,1,length($1)-1)}'`
> else
> subdir=$dir
> fi
#echo $subdir
/home/hello

热点排行