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

shell里 截取字符串

2012-11-14 21:43 253 查看
按指定的字符串截取

1、第一种方法:

${varible##*string} 从左向右截取最后一个string后的字符串

${varible#*string}从左向右截取第一个string后的字符串

${varible%%string*}从右向左截取最后一个string后的字符串

${varible%string*}从右向左截取第一个string后的字符串


“*”只是一个通配符可以不要

例子:

$ MYVAR=foodforthought.jpg

$ echo ${MYVAR##*fo}

rthought.jpg

$ echo ${MYVAR#*fo}

odforthought.jpg

2、第二种方法:${varible:n1:n2}:截取变量varible从n1到n2之间的字符串。

可以根据特定字符偏移和长度,使用另一种形式的变量扩展,来选择特定子字符串。试着在 bash 中输入以下行:

$ EXCLAIM=cowabunga

$ echo ${EXCLAIM:0:3}

cow

$ echo ${EXCLAIM:3:7}

abunga

这种形式的字符串截断非常简便,只需用冒号分开来指定起始字符和子字符串长度。

牛b例子:

#!/bin/bash

#截取字符串

#path=ss/usr/share/src/root/home/admin

path=ss/usr/share/src/root/home/admin/src/add

echo $path

echo ${path%src*} #从右向左截取第一个 src 后的字符串

echo ${path}

echo ${path%/*}

echo ${path%%/*}从右向左截取 最后一个 / 后的字符串

echo ${path#*/}从左向右截取第一个 / 后的字符串

echo ${path##*/}从左向右截取最后一个 / 后的字符串

echo ${path:3}

echo ${path:6:60}截取变量path从前三个字符串

echo ${#path}计算 path变量 一共有几个字符串

echo ${path/root/kyo}把path变量里的第一个root字符串,替换为 kyo字符串

echo ${path//s/m}把path变量里的所有的s字符,替换为 m 字符

echo ${path}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: