您的位置:首页 > 运维架构 > Shell

shell截取字符串

2016-10-09 18:00 113 查看
在截取shell变量中的子串中,有很多办法,下面简单介绍一种。利用变量自身以及特殊的符号即可实现

file=/dir1/dir2/dir3/my.file.txt

要求截取一下字符串

file.txt

txt

/dri1/dir2/dir3

null

dir1/dir2/dir3/my.file.txt

/dir1/dir2/dir3/my.file

/dir1/dir2/dir3/my

my.file.txt

处理方法:

echo ${file#*.}    去掉第一点以及左边的内容

echo ${file##*.}   去掉最后一个点以及左边的内容

echo ${file%/*}    去掉最后一个/以及右边的内容

echo ${file%%/*}   去掉第一个/以及右边的内容

echo ${file#*/}     去掉第一个/以及左边的内容

echo ${file%.*}     去掉最后一个点以及右边的内容

echo ${file%%.*}    去掉第一个点以及右边的内容

echo ${file##*/}     去掉最后一个/以及左边的内容

解析:如果最前面出现的是#好那么就是代表去掉左边的内容,一个#号代表的是去掉第一个出现的某个字符的左边的内容,两个#代表的是去掉最后一个出现字符的左边的内容,%正好相反,代表的是去掉右边,而且%代表的是去掉最后一个出现的,%%代表的是第一个出现的。选取的字符出现的位置也有差别,#是后面加上*号,然后添加你定位的符号,然而%是先定位符号再加上*号。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: