shell的字符串处理
2011-06-18 13:42
232 查看
#!/bin/bash
##########################################
#
# 演示bash中操作字符串的操作
#
# 后面是输出结果
#
##########################################
str="abc123abcABC"
# |-|
# |-------|
#计算字符串的长度
echo ${#str} #12
#位置参数有关操作
echo ${#*} #位置参数的个数
echo ${#@} #位置参数的个数和上面的效果一样
echo $* #把所有的位置参数作为一个字符串输出
echo $@ #效果同上
#字串截取
#
# ${string#substring}
# 从$string的左边第一个字符截掉第一个匹配的$substring
# ${string##substring}
# 从$string的左边第一个字符截掉最后一个个匹配的$substring
#
#从左边开始
echo ${str#a*c} #a到c的最短匹配
echo ${str##a*c} #a到c的最长匹配
#从右边开始
echo ${str%a*C} #从右边的最后一个字符开始寻找a到B的最短匹配
echo ${str%%a*B} #从右边最后一个字符开始寻找a到B的最长匹配
#这里找不到模式
#==取子串==
# ${string:position}
# ${string:positon:length}
#
echo ${str:2} #从第2个位置开始提取字符串的值
echo ${str:2:3} #从第2个位置开始提取长度为3个字符的值
#反向提取子串
echo ${str:(-2)} #从反向的第2个位置开始提取字符串
echo ${str:(-2):6} #从反向的第2个字符的位置开始提取长度为6个字符的串(:(不可能把)
#总共的字符长度只有2个怎么提取6个呢呵呵
echo ${str:(-6):3} #6个中提出3个总可以了把
#位置参数的提取
echo ${*:2} #从第二个位置参数开始提取后面所有位置参数的值
echo ${*:2:3} #从第二个位置参数开始提取3个位置参数的值
#=子串替换=
# ${string/substring/replacement}
# 使用$replacement来替换第一个匹配的$substring.
# ${string//substring/replacement}
# 使用$replacement来替换所有匹配的$substring.
#
# ${string/#substring/replacement}
# 如果$substring匹配$string的开头部分,那么就用$replacement来替换$substring.
# ${string/%substring/replacement}
# 如果$substring匹配$string的结尾部分,那么就用$replacement来替换$substring.
#
str1="123abcABCab12"
echo ${str1/12/hover} #仅仅替换了第一个
echo ${str1//12/hover} #替换了所有的
echo ${str1/#12/hover} # 从头开始匹配12,如果找到做替换
echo ${str1/%12/hover} # 从尾开始匹配12,如果找到做替换
转自:http://blog.csdn.net/zg_hover/archive/2008/12/15/3523303.aspx
##########################################
#
# 演示bash中操作字符串的操作
#
# 后面是输出结果
#
##########################################
str="abc123abcABC"
# |-|
# |-------|
#计算字符串的长度
echo ${#str} #12
#位置参数有关操作
echo ${#*} #位置参数的个数
echo ${#@} #位置参数的个数和上面的效果一样
echo $* #把所有的位置参数作为一个字符串输出
echo $@ #效果同上
#字串截取
#
# ${string#substring}
# 从$string的左边第一个字符截掉第一个匹配的$substring
# ${string##substring}
# 从$string的左边第一个字符截掉最后一个个匹配的$substring
#
#从左边开始
echo ${str#a*c} #a到c的最短匹配
echo ${str##a*c} #a到c的最长匹配
#从右边开始
echo ${str%a*C} #从右边的最后一个字符开始寻找a到B的最短匹配
echo ${str%%a*B} #从右边最后一个字符开始寻找a到B的最长匹配
#这里找不到模式
#==取子串==
# ${string:position}
# ${string:positon:length}
#
echo ${str:2} #从第2个位置开始提取字符串的值
echo ${str:2:3} #从第2个位置开始提取长度为3个字符的值
#反向提取子串
echo ${str:(-2)} #从反向的第2个位置开始提取字符串
echo ${str:(-2):6} #从反向的第2个字符的位置开始提取长度为6个字符的串(:(不可能把)
#总共的字符长度只有2个怎么提取6个呢呵呵
echo ${str:(-6):3} #6个中提出3个总可以了把
#位置参数的提取
echo ${*:2} #从第二个位置参数开始提取后面所有位置参数的值
echo ${*:2:3} #从第二个位置参数开始提取3个位置参数的值
#=子串替换=
# ${string/substring/replacement}
# 使用$replacement来替换第一个匹配的$substring.
# ${string//substring/replacement}
# 使用$replacement来替换所有匹配的$substring.
#
# ${string/#substring/replacement}
# 如果$substring匹配$string的开头部分,那么就用$replacement来替换$substring.
# ${string/%substring/replacement}
# 如果$substring匹配$string的结尾部分,那么就用$replacement来替换$substring.
#
str1="123abcABCab12"
echo ${str1/12/hover} #仅仅替换了第一个
echo ${str1//12/hover} #替换了所有的
echo ${str1/#12/hover} # 从头开始匹配12,如果找到做替换
echo ${str1/%12/hover} # 从尾开始匹配12,如果找到做替换
转自:http://blog.csdn.net/zg_hover/archive/2008/12/15/3523303.aspx
相关文章推荐
- SHELL字符串处理技巧(${}、##、%%)
- Shell脚本编程——字符串变量处理
- Shell 脚本之字符串处理
- Shell正则表达式 & Grep正则表达式 & shell字符串处理
- 【转】shell脚本处理字符串的常用方法
- ${} 特异功能--shell脚本字符串处理
- 特异功能--shell脚本字符串处理
- SHELL字符串处理技巧(${}、##、%%)
- shell字符串相等比较,注意对字符串为空的时候的处理
- Shell中的正则表达式及字符串处理
- Shell处理字符串常用方法
- shell的字符串以及字符串的处理
- Shell 处理字符串和{}操作
- python -c 处理shell字符串
- Shell 正则表达式 字符串处理
- shell脚本处理字符串常用方法
- Shell处理字符串常用方法
- Shell常用处理字符串方法(备查)
- shell字符串处理-数组-expect
- shell基础字符串处理